我在我的应用程序中设置了以下路由(表单属于一个站点):
map.resources :sites do |site|
site.resources :forms
end
但是,当我尝试使用助手(例如
edit_site_form_path(form)
或
<%= link_to 'Show', [:site, form] %>
我的 URL 与 ID 交换后出现 (/sites/5/forms/1 ),其中 5 是表单 ID,1 是站点 ID。这是来自页面/sites/1。
帮助(?)
最佳答案
edit_site_form_path
方法必须有两个参数,site_id 和 form_id。所以在你的例子中你只传递了 form_id。第一个参数是方法中最先出现的模型,在本例中为 site
。第二个参数是 form_id。
修改后的路径方法可能如下所示
edit_site_form_path(form.site, form)
(假设您有一个 Form
模型,它 belongs_to :site
)
关于ruby-on-rails - 奇怪的 Rails 路由行为 : two ids swapped around in nested resources,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/761360/