Rails 4中的link_to语法用于嵌套资源

时间:2014-02-17 11:13:47

标签: ruby-on-rails nested-resources

我真的不明白如何链接到rails中的另一个视图。

我在/products/index.html.erb中加载数据,并希望从一个产品中检索产品ID以指向另一个视图:subjects / index.html.erb

使用link_to获取此网址的正确语法是什么:' / products / 9 / subject' (对于产品ID 9)?

非常感谢!

4 个答案:

答案 0 :(得分:0)

如果您定义了嵌套路线,则问题似乎如此:

<%= link_to "Click", [@product, :subjects] %>

答案 1 :(得分:0)

link_to "Click", subjects_product_path(9)

如果您使用rake路线,它会告诉您哪些路线可用,您需要嵌套资源才能使用

resources :products do
  resources :subjects
end

答案 2 :(得分:0)

在你的情况下:

<%= link_to "The name of your link", product_subjects_path(9) %>

其中9是您产品的ID。您可以使用更通用的链接,如:

<%= link_to "The name of your link", product_subjects_path(@product) %>

在产品的展示视图中,甚至:

<h2>Links to subjects for each product </h2>

<% @products.each do |product| %>
    <%= link_to product.title, product_subjects_path(product) %>
<% end %>

在索引中。

假设您的路线中的主题嵌套在产品中:

resources :products do
  resources :subjects
end

当你迷路时你不要忘记:

bundle exec rake routes

将为您提供所有现有路线。

以下是有关使用嵌套的路由的导轨指南:doc

以下是路径语法的文档:doc

答案 3 :(得分:0)

要查看rails应用程序中的所有路由,只需使用以下命令:

rake routes

它将列出所有路线以及路线变量和它们指向的控制器/操作。从那里你获取路由的名称并在roder中附加一个_path或_url(如果你需要一个绝对的url)来获取在link_to中使用的方法的名称。

在您的情况下,/ products / 9 / subject路径的link_to是:

link_to 'Link text', product_subjects_path(@product)
相关问题