使用不同的link_to路径渲染部分

时间:2012-10-17 12:44:59

标签: ruby-on-rails partial-views renderpartial

我正在尝试呈现partial,其中显示了一个名称列表(我使用:resource :create创建)和link_to各自的页面。但是,我想要实施两次,以便一个列表链接到显示页面,其他链接指向编辑页面

我更愿意使用一个部分来实现这一点,因为除了url_path之外,它们完全相同。

footer.html.erb:

<!--Show-->
                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                                <b class="icon-eye-open icon-white"></b>
                                <b class="caret"></b>
                            </a>
                            <ul class="dropdown-menu">
                                <%= render current_user.apps %>
                            </ul>
                        </li>

<!--Edit-->
                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                                <b class="icon-wrench icon-white"></b>
                                <b class="caret"></b>
                            </a>
                            <ul class="dropdown-menu">
                                <%= render current_user.apps %>
                            </ul>
                        </li>

_app.html.erb:

显示应该有app和 对于edit_app_path(app)的第二个参数

修改应该有link_to
<li>
    <%= link_to app.name, app %>
</li>

1 个答案:

答案 0 :(得分:0)

如果您的部分仅包含

    <li>
      <%= link_to app.name, app %>
    </li>

我建议写两次,因为没有css类的列表对于部分imho是不够的。

但是如果你真的想要使用部分,你可以使用Rails 3中的局部变量:

    <li>
        <%= link_to @app.name, @path %>
    </li>

    <%= render "shared/apps", :collection => current_user.apps, :locals => {:path=> @app} %>
    <%= render "shared/apps", :collection => current_user.apps, :locals => {:path=> edit_app_path(app)} %>