查看
<%= link_to "Link", {:action => "AjaxView",:col => "colname"}, :update => "Ajaxcall", :remote => true %>
控制器
def AjaxView
@vars= Var.find(:all,:conditions => { :varName=> "one" },:select=>(params[:col]))
respond_to do |format|
format.js { render :layout=>false }
end
end
AjaxView.js.erb
$("#3").text("<%= escape_javascript(render(:partial => "var",
:collection => @vars)) %>");
_var.html.erb
<%= var.col1 %>
现在它从Column返回所有值,需要它们一个接一个吗?
当前输出为:“amit1 amit2 amit3 amit4”为单字符串 我希望逐个获取这些值,以便我可以使用Div id映射它并在Grid
中发布它们所需输出为:“amit1”
答案 0 :(得分:2)
以这种方式调用render(:partial => "var", :collection => @vars)
时,实际上是逐个为每个变量渲染部分。因此,要逐个使用这些数据,我认为您需要其中一种:
1)使用你要在partial中添加的所有html部分: _var.html.erb
<td id='<%= var.col1 %>'> # or whatever attributes you want
..
</td>
2)直接在partial中迭代变量: AjaxView.js.erb
$("#3").text("<%= escape_javascript(render(:partial => "var")) %>");
_var.html.erb
<% @vars.each do |var| %>
# do whatever you want
<% end %>
答案 1 :(得分:0)
非常感谢alony
她提供的正确答案是
<% @vars[2].col1 %>
也在AjaxView.js.erb中写,
$("#3").text("<%= escape_javascript(render(:partial => "var")) %>");