我真的不明白如何链接到rails中的另一个视图。
我在/products/index.html.erb中加载数据,并希望从一个产品中检索产品ID以指向另一个视图:subjects / index.html.erb
使用link_to获取此网址的正确语法是什么:' / products / 9 / subject' (对于产品ID 9)?
非常感谢!
答案 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)