Почему form_for использует неправильный REST url_helpers для контроллера пространства имен? - PullRequest
1 голос
/ 08 мая 2011

В моем приложении rails есть партиал, который содержит форму, совместно используемую действием new и edit:

<%= form_for @customer do |f| %>

....

<% end %>

Эти действия относятся к пространству имен контроллера (называется Customers ) (называется admin ), если попытаться запустить код, выведите ошибку при выполнении form_for:

неопределенный метод `customer_path '

Устраните это, используя:

<% = form_for: customer, @customer do | f |%>

....

<% end %>

Теперь форма генерируется с правильным URL-адресом, когда вызывается действием new , но когда генерируется edit URL-адрес формы ""/ admin / customer / 1 / edit"вместо update .При отправке формы выведите сообщение об ошибке:

Не найдено ни одного маршрута "/ admin / Customers / 1 / edit"

, но в route.rb есть:

пространство имен: admin do

ресурсы: клиенты

end

и rake: маршруты показывают все URL-адреса REST:

admin_customers GET /admin/customers(.:format) {: action => "index",: controller => "admin / Customers"} POST /admin/customers(.:format) {: action => "create",: controller =>" admin / Customers "} new_admin_customer GET /admin/customers/new(.:format) {: action =>" new ",: controller =>" admin / Customers "} edit_admin_customer GET / admin / Customers/:id/edit(.:format)‹:action=>"edit",:controller=>"admin/customers "} admin_customer GET /admin/customers/:id(.:format) {: action =>" show",: controller =>" admin / Customers "} PUT /admin/customers/:id(.:format) {: action =>" update ",: controller =>" admin / customer "} УДАЛИТЬ / admin / Customers /: id (.: format) {: action => "destroy",: controller => "admin / Customers"}

Любая идея

1 Ответ

3 голосов
/ 08 мая 2011

Попробуйте это

<%= form_for [:admin, @customer] do |f| %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...