rails 3使用params部分渲染

时间:2012-03-22 17:43:41

标签: ruby-on-rails-3 link-to renderpartial param

我在将部分参数传递给部分时遇到问题。无论我尝试过什么,当部分被渲染时,参数不会通过。

我正在使用jquery选项卡式布局,每个选项卡都会显示特定状态的工作订单以及基于一系列日期。

我正在使用params:sort_filter和:status_filter来完成此任务。

我的原始代码在这里,但我想更改此内容以在link_to中呈现部分内容,而不是在此处列出的方式:

         <ul>
            <li><%= link_to "Active", work_orders_path(params.merge({:status_filter => "A", :sort_filter => params[:sort_filter]}))  %></li>
            <li><%= link_to "On Hold", work_orders_path(params.merge({:status_filter => "H", :sort_filter => params[:sort_filter]}))  %></li>
            <li><%= link_to "Completed", work_orders_path(params.merge({:status_filter => "C", :sort_filter => params[:sort_filter]}))  %></li>
            <li><%= link_to "Billed", work_orders_path(params.merge({:status_filter => "B", :sort_filter => params[:sort_filter]}))  %></li>
        <li><%= link_to "All", work_orders_path(params.merge({:status_filter => "E", :sort_filter => params[:sort_filter]})) %></li>
     </ul>

因此,我不想链接到我的work_orders_path中的索引,而是链接到名为viewall的部分。像这样:

<%= link_to render (:partial => 'viewall', :status_filter => "E", :sort_filter => params[:sort_filter]) %>

如果可能的话,我需要能够使用partial传递合并的参数。我已经查看了所有的文档,并且整天用手指搜索了我的手指以获得答案,但仍然没有提出任何问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:31)

将变量@foo传递给partial的语法是:

render :partial => "partial", :locals => { :foo => @foo }

然后它在部分中可用foo

this guide的第3.4.4节。

编辑:自Rails 3。?。?以来,更简洁的版本是这样的:

render "partial", foo: @foo