В моем приложении 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"}
Любая идея