Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
rails3 ajax:通过ajax持久化局部变量的最佳方法是什么?_Ajax_Ruby On Rails 3 - Fatal编程技术网

rails3 ajax:通过ajax持久化局部变量的最佳方法是什么?

rails3 ajax:通过ajax持久化局部变量的最佳方法是什么?,ajax,ruby-on-rails-3,Ajax,Ruby On Rails 3,这就是我的视图的外观(请忽略开始和结束标记): @obj1.leaves.each do|l| 如果 render:partial=>'shared/view1',:locals=>{:l=>l} 其他的 render:partial=>'shared/view2',:locals=>{:l=>l} 结束 结束 view1上的最后一个操作会通过ajax显示view2,反之亦然。但是,当呈现view1或view2时,局部变量“l”将不再被识别,并抛出一个错误,导致表单无法显示(手动页面刷新时除外

这就是我的视图的外观(请忽略开始和结束标记):

@obj1.leaves.each do|l|
如果
render:partial=>'shared/view1',:locals=>{:l=>l}
其他的
render:partial=>'shared/view2',:locals=>{:l=>l}
结束
结束
view1上的最后一个操作会通过ajax显示view2,反之亦然。但是,当呈现view1或view2时,局部变量“l”将不再被识别,并抛出一个错误,导致表单无法显示(手动页面刷新时除外)。我该怎么做才能使表单工作并坚持我的“l”

提前谢谢你的帮助

EDIT:My create.js.erb file for view1(view2实际上是销毁方法,反之亦然):

$(“#表单”)。替换为(“”)
我的实际观点是:

<%= form_for([l, l.likes.build], :remote => true) do |f| %>
<div class="actions"><%= f.submit "Like" %></div>
<% end %> 
true)do | f |%>
(不是答案。)

@obj1.leaves.each do|l|
部分=?'共享/view1':“共享/view2”
render:partial=>partial,:locals=>{:l=>l}
结束

当地人就是这样;地方的我不清楚你在说什么Ajax--
replaceWith
只是替换内容,它不发出请求。如果它们都在同一个请求中,您可以将
l
作为一个实例变量(
@l
),然后看看这是否会解决问题。

哪个失败,您显示的是哪个,还是显示另一个的Ajax?Ajax呈现的表单失败,显示执行该操作的部分会很有帮助。开始吧。。添加了ajax部分。。
$("#form").replaceWith("<%= escape_javascript(render('shared/view2')).html_safe %>") 
<%= form_for([l, l.likes.build], :remote => true) do |f| %>
<div class="actions"><%= f.submit "Like" %></div>
<% end %> 
@obj1.leaves.each do |l|
  partial = <some_condition> ? 'shared/view1' : 'shared/view2'
  render :partial => partial, :locals => { :l => l }
end