奇怪的 Rails 路由行为:两个 id 在嵌套资源中交换

2024-04-28

我在我的应用程序中设置了以下路由(表单属于一个站点):

map.resources :sites do |site| 
 site.resources :forms
end 

但是,当我尝试使用帮助程序(例如,

edit_site_form_path(form)

or

<%= link_to 'Show', [:site, form] %>

我的 URL 的 ID 已交换( /sites/5/forms/1 ),其中 5 是表单 ID,1 是网站 ID。这是来自页面/sites/1。

Help(?)


The edit_site_form_path方法必须有两个参数,site_id 和 form_id。因此,在您的示例中,您仅传递 form_id。第一个参数是方法中首先出现的模型,在本例中是site。第二个参数是form_id。

修改后的路径方法可能如下所示

 edit_site_form_path(form.site, form)

(假设你有一个模型Form which belongs_to :site)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

奇怪的 Rails 路由行为:两个 id 在嵌套资源中交换 的相关文章

随机推荐