使用控制器中的数组进行Rails Javascript解析
我在视图中进行Ajax调用,然后控制器将数据从DB提取到一个数组中,现在我想将这个数组值传递给JavaScript,这样我就可以用不同的id更新表中的数据 控制器代码:使用控制器中的数组进行Rails Javascript解析,javascript,ruby-on-rails,Javascript,Ruby On Rails,我在视图中进行Ajax调用,然后控制器将数据从DB提取到一个数组中,现在我想将这个数组值传递给JavaScript,这样我就可以用不同的id更新表中的数据 控制器代码: def AjaxView @var1 = Var.find(:all,:conditions => { :varname=> "one" },:select=> (params[:col])) respond_to do |format| format.js end end AjaxView
def AjaxView
@var1 = Var.find(:all,:conditions => { :varname=> "one" },:select=> (params[:col]))
respond_to do |format|
format.js
end
end
AjaxView.js.erb代码:
$(document).ready(function() {
$("#test").text("valuetoupdate");
});
现在,当我运行这段代码时,它成功地更新了视图页面中id=test处的“valuetoupdate”。
相反,我想从数组@var1中逐个更新所有值
我搜索了更多,发现Controller中生成的数组@var1将自动传输到AjaxView.js.erb文件。现在我必须迭代所有值,但此代码在JavaScript文件中不起作用:
<% for var in @var1 %>
$("#3").text(var);
<% end %>
$(“#3”)。文本(变量);
它给出了空白的回答谢谢大家
我能够以以下方式解决我的问题:,
我不再使用for循环实现,而是开始使用if-else条件
<% if @var.to_s == 'valuetoupdate' %>
{ }
<% elsif @var.to_s == 'valuetoupdate1' %>
{}
{ }
{}
这对我来说很好。您缺少
format.js
的块。另外,请将您的javascript发布到目前为止,它实际上实现了ajax调用。@Ben,我在上面添加的javascript对我来说很好。是的,您发布的javascript很好,但它不是ajax调用。ajax调用的代码在哪里?