пользовательский маршрут нет маршрутов - PullRequest
0 голосов
/ 30 августа 2011

Во время тестов на огурцы я получаю следующую ошибку:

No route matches "/companies/29/update_owner"

Я не уверен, что делаю неправильно, но уверен, что это глупо.

У меня есть следующие маршруты:

company_update_owner POST   /companies/:company_id/update_owner(.:format) {:controller=>"companies", :action=>"update_owner"}
company_set_owner        /companies/:company_id/set_owner(.:format)    {:controller=>"companies", :action=>"set_owner"}
       companies GET    /companies(.:format)                          {:action=>"index", :controller=>"companies"}
                 POST   /companies(.:format)                          {:action=>"create", :controller=>"companies"}
     new_company GET    /companies/new(.:format)                      {:action=>"new", :controller=>"companies"}
    edit_company GET    /companies/:id/edit(.:format)                 {:action=>"edit", :controller=>"companies"}
         company GET    /companies/:id(.:format)                      {:action=>"show", :controller=>"companies"}
                 PUT    /companies/:id(.:format)                      {:action=>"update", :controller=>"companies"}
                 DELETE /companies/:id(.:format)                      {:action=>"destroy", :controller=>"companies"}

Я пробовал:

company_update_owner_path(:company_id => @company.id)

и

company_update_owner_path(@company)

обновление:

= form_for @company, :url => company_update_owner_path(:company_id => @company.id), :method => :put do |f|

Любая помощь будет принята с благодарностью.

Вот код в маршрутах .rb:

resources :companies do
    match '/update_owner' => 'companies#update_owner', :as => :update_owner, :via => :post
    match '/set_owner' => 'companies#set_owner', :as => :set_owner
end

Ответы [ 3 ]

1 голос
/ 30 августа 2011

вам нужно удалить ": method =>: put"

1 голос
/ 30 августа 2011

Ваш маршрут объявлен как POST, но вы делаете PUT в форме.Зафиксируйте либо маршрут, либо форму, и вы ее прибьете.

0 голосов
/ 30 августа 2011

Оставил бы это в качестве комментария, но всплывающее окно было измучено. Если вы не в курсе, вы также можете определить эти маршруты немного по-другому:

resources :companies do
  member do
    post "update_owner"
    get "set_owner"
  end
end
...