ruby on rails -动态传递哈希值给一个局部



我遇到了一个将哈希值动态传递给部分文件的问题。我在我的页面上显示了人名(这是部分)。哈希值如下所示:

names[1] = "James"  
names[2] = "Williams"  
names[3] = "Jack"  
render :partial => "list", :locals => {:names => names}  

我需要动态传递哈希值。我该怎么做呢?在本例中,新的哈希值如下:

names[21] = 'Flink'  
names[81] = 'Mark'

我的代码

class PrlcController < ApplicationController
def bar
  @names = Hash.new
  @names[1] = "James"  
  @names[2] = "Williams"  
  @names[3] = "Jack"  
end
def foo_ajax
  @names = Hash.new
  @names[21] = 'Flink'  
  @names[81] = 'Mark'
end
end
bar.rhtml
----------
<!-- Name listing section -->
<%= render :partial => "list", :locals => "{:names => @names}" %>
<!-- AJAX calling section -->
<%= link_to_function "call testing", :onclick => "load_foo_ajax_data" %>

<!-- AJAX section -->
<div id="foo_ajax_data">
</div>
<!-- script section -->
function load_foo_ajax_data() {
       new Ajax.Updater("foo_ajax_data","/Prlc/foo_ajax", {
            asynchronous:true,
            evalScripts:true,
            onComplete:function(request){             
            },
            onLoading:function(request){}
        });
}

foo_ajax.rhtml
--------------
Some process here.

_list.rhtml
-----------
Display the names

尝试以下

class PrlcController < ApplicationController
  def bar
    @names = Hash.new
    @names[1] = "James"  
    @names[2] = "Williams"  
    @names[3] = "Jack"  
  end
  def foo_ajax
    @names = Hash.new
    @names[1] = 'Flink'  
    @names[2] = 'Mark'
    render :update do |page|
      page.replace_html  'foo_ajax_data', :partial => "list", :object => [@names]
    end
  end
end

bar.rhtml

<%= render :partial => "list", :locals => "{:names => @names}" %>    
<!-- AJAX section -->
<div id="foo_ajax_data">
  <!-- Name listing section -->
</div>
<!-- AJAX calling section -->
<%= link_to_remote "call testing", :url => { :action => "load_foo_ajax_data"} %>

最新更新