通过以下方式渲染rails中元素的视图:id

时间:2013-08-16 21:46:08

标签: html ruby-on-rails routes erb

我有一个侧边栏,其中包含指向所有用户的链接:shopping_lists。点击其中一个链接后,我想呈现一个显示该特定列表中:list_items的页面。这是我的侧边栏部分:

<aside class="sidebar-nav-fixed">

    <h1>My Lists</h1>

    <% if user_signed_in? %>
        <% current_user.shopping_lists.each do |l| %>
            <ul>
                <%= link_to "#{l.name}", '#' %>
            </ul>
        <% end %>
    <% else %>
        <h5><%= link_to "Sign in to manage lists.", new_user_session_path %></h5>
    <% end %>
</aside>

我的问题是:我将用什么路径代替我当前的存根链接以便路由到正确的列表?提前谢谢!

2 个答案:

答案 0 :(得分:2)

这取决于您的路线设置方式。我希望购物清单总是在用户的上下文中,所以可能是这样的:

<%= link_to l.name, user_shopping_list_path(current_user, l) %>

如果购物清单是顶级路线,那么可能是这样的:

<%= link_to l.name, shopping_list_path(l) %>

答案 1 :(得分:1)

您可以做几件事,授权您的路线正确设置:

最简单的是:

link_to "#{l.name}", l

Rails应该创建类似于http://host/shopping_lists/2

的链接

以上是

的简写
link_to "#{l.name}", shopping_list_path(l)

要查看可以运行的可用路线和方法的列表:

bundle exec rake routes

在rails应用的根目录