传递:locals参数由link_to_remote呈现的部分参​​数

时间:2009-02-25 09:35:14

标签: ruby-on-rails

来自link_to_remote

的文档
  

然后可以将该请求的结果插入到DOM对象中,该对象的id可以使用options [:update]指定。通常,结果将由控制器使用render:partial进行部分准备。

例如,人们会这样做:

<%= link_to_remote( "Some link text", :url => url, :method => method, :update => 'name_of_partial' %>

有没有办法将:locals哈希传递给部分(在上面的示例中,'name_of_partial'),类似于使用“render:partial”渲染它时?

1 个答案:

答案 0 :(得分:3)

你不太明白。 :update参数是元素的html id,其内容将被此ajax调用的结果内容替换。

<div id="ajax_message"></div>
<%= link_to_remote 'click me',
                   :url => my_ajax_action_path,
                   :update => 'ajax_message' %>

有问题的部分是为了响应控制器中的ajax请求而呈现的。

def my_ajax_action
  @my_object = MyOobject.find(params[:id]) #or something
  render :partial => 'my_object',
         :locals => { :my_object => @my_object }
end

然后,通过:update参数将生成的响应主体推送到先前命名的元素中。