【问题标题】:rails 3 render partial with paramsrails 3 使用参数渲染部分
【发布时间】:2023-03-05 19:16:02
【问题描述】:

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

我正在使用 jquery 选项卡式布局,每个选项卡都显示特定状态的工单,并且还基于日期范围。

我正在使用参数 :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]) %>

如果可能,我需要能够将合并参数与部分参数一起传递。我查看了所有文档,昨天一整天都在用谷歌搜索这个问题的答案,但仍然一无所获。任何帮助将不胜感激。

【问题讨论】:

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


    【解决方案1】:

    将变量@foo 传递给部分的语法是这样的:

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

    然后它在部分中可用foo

    请参阅this guide 的第 3.4.4 节。

    编辑:从 Rails 3.?.? 开始,一个更简洁的版本是这样的:

    render "partial", foo: @foo
    

    【讨论】:

    • 实际上我试过了,它根本没有传递变量。 render(:partial => "viewall", :locals => { :status_filter => "H" }) - 尝试使用和不使用 ()。也试图让这个与link_to一起工作但没有成功。不确定是否可能。
    • 确保您以status_filter 的身份访问它,而不是@status_filterparams[:status_filter]
    • 我有一个一般性问题,只是为了确保我做对了。部分加载之前是否会击中控制器?我假设他们这样做(渲染),但如果他们不这样做,我就会遇到问题,因为我的控制器使用这些参数根据日期范围和状态从我的工作订单表中选择行。我的目的是让工作订单根据它们所处的状态出现在不同的选项卡中。
    • 控制器渲染视图,而视图又可以包含局部视图。我链接的指南很好地介绍了它们如何组合在一起。
    • 还有:render "partial", {:foo =&gt; @foo}
    猜你喜欢
    • 2012-07-20
    • 1970-01-01
    • 2012-10-16
    • 2023-03-11
    • 1970-01-01
    • 2016-12-09
    • 2011-03-22
    • 2011-07-23
    • 2011-09-14
    相关资源
    最近更新 更多