【问题标题】:Render partial based on result changing根据结果​​变化渲染部分
【发布时间】:2009-12-22 01:57:26
【问题描述】:

我试图弄清楚如何在现有的渲染部分上完成渲染。先介绍一些背景资料:

我有一个根据数据库中的数据呈现的表。在我渲染的部分之外,我有各种选择标签,这些标签允许从所选的特定选择标签上更新数据。我尝试了以下操作,但无济于事。

<%= select "sales", "short_desc", Sales.find(:all).collect{|x| [ x.short_desc]}, {:prompt => ''},
            :onchange => remote_function(:url => {:controller => 'sales', :action => 'filterResults'},
                    :with => "'value=' + value") %>

所以在filterResults方法中,我有返回结果的sql语句,我试图再次渲染部分。

render :partial => "tableReport", :locals => {:sales => @sales }

任何帮助将不胜感激,感谢您抽出时间准备好我的回答。

问候~

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    我想你想使用 AJAX 吗?我会使用这样的 RJS:

    在您的控制器中:

    def filterResults
        @sales = ..
        # logic
        respond_to do |format|
            format.html # renders the normal view if it's a normal request
            format.js # renders filter_results.rjs if it's an ajax request
        end 
    end
    

    views/sales/filter_results.rjs

    page.replace 'id_of_your_div', :partial => 'tableReport', :object => @sales
    

    我尚未测试代码,因此可能需要进行一些更改。这个想法是你用ajax调用filterResults,它返回一些javascript,用部分替换div(或任何其他具有该#id的对象)。您使用查看Rails API 来查找更多通过RJS 操作DOM 的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-28
      • 2015-12-26
      • 1970-01-01
      相关资源
      最近更新 更多