【发布时间】:2011-09-03 19:05:21
【问题描述】:
当路由被命名空间时,你如何处理form_for?我遇到了一些我真正希望得到的奇怪路线错误。
例如,假设您有一个名为 Admin::CompaniesController 的控制器
您的 routes.rb 中的 :admin 命名空间:
namespace :admin do
resources :companies
end
大多数事情都可以正常工作,但是在渲染新表单时出现错误。代码如下:
<%= simple_form_for(@company, :url => admin_company_path(@company)) do |f| %>
这是错误信息:
ActionView::Template::Error: No route matches {:action=>"show", :controller=>"admin/companies", :id=>#<Company id: nil, name: nil, phone_number: nil, address: nil, postal_code: nil, is_enabled: true, courses_created: 0, province_id: nil, theme_id: nil, payment_plan_id: nil, created_at: nil, updated_at: nil>}
我怎样才能让 Rails 在这里玩得很好?我显然想要一个 url 用于编辑,另一个用于新表单。通常,我什至不必将:url 放在我的form_for 语句中,但由于嵌套,我不得不这样做。
我现在不知道在这里做什么,至少不优雅。
【问题讨论】:
标签: ruby-on-rails ruby routing namespaces controller