繁体   English   中英

使用带有命名空间路由的link_to的rails

[英]rails using link_to with namespaced routes

我已经创建了一组带有admin命名空间的路由和控制器,我在使用这些新路由的链接助手时遇到了一些问题。

我看到有一些新的路径助手,例如admin_projects_path,它通向/ admin / projects。 但是,我无法链接到命名空间中这些对象的show,edit,destroy等路径。 我怎么做?

如果您使用的是Rails 3 ,则可以将admin命名空间与变量一起使用,而不是编写长辅助路径名。

视图:

<td><%= link_to 'Show', [:admin, project] %></td>
<td><%= link_to 'Edit', [:edit, :admin, project] %></td>
<td><%= link_to 'Destroy', [:admin, project], confirm: 'Are you sure?', method: :delete %></td>

控制器:

redirect_to [:admin, @project]

您应该看到rake routes路由中列出的所有rake routes ,您可以按名称使用这些rake routes来获取正确的命名空间。 使用传入的自动检测:controller:action不会像您发现的那样工作。

如果它在路由中列为new_thing ,则该方法是带有适当参数的new_thing_path 例如:

link_to('New Project', new_admin_project_path)
link_to('Projects', admin_projects_path)
link_to(@project.name, admin_project_path(@project))
link_to(@project.name, edit_admin_project_path(@project))
link_to(@project.name, admin_project_path(@project), :method => :delete)

有些方法需要:url选项作为参数,在这种情况下,您可以使用url_for生成路径:

icon(:url => url_for(:controller => "admin/projects", :action => "edit", :id => @project),
     :type => :edit)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM