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

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


但是,当我尝试使用辅助工具进入表单的编辑路径时(例如

edit_site_form_path(form)


要么

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


我的网址以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路由行为:在嵌套资源中交换了两个ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/761360/

10-11 07:04