![](/img/trans.png)
[英]Rails passing local variable from view to js, controller and then back to form
[英]Rails 3: sending local variable in the controller to view?
新的rails和jquery的新手。 我通过将respond_to :html, :js
到我的控制器并在posts#index方法中的respond_to @Posts
中设置了一些AJAX页面渲染。 它使用AJAX渲染我的views / posts / _posts.html.erb部分,但是,我需要将html响应指向同一个地方,所以我尝试添加一个respond_to do |format|
块。
帖子#指数
@posts = ...
respond_to do |format|
format.html { render 'posts/_posts' }
format.js { respond_with @posts }
这工作并将我的my :html
响应发送到正确的视图,但我有变量的问题。 我的帖子#index使用@posts变量,但我的views/posts/index.js.erb
文件执行此操作:
$('#stream').html('<%= escape_javascript(render "posts", :posts => @posts) %>');
所以我的views/posts/_posts.html.erb
查找posts
而不是@posts
<% posts.each do |post| %>
<%= render 'shared/feed_item', :feed_item => post %>
<% end %>
我尝试从控制器发送本地变量,如下所示,但这不起作用:
帖子#指数
@posts = ...
respond_to do |format|
format.html { render 'posts/_posts', :posts => @posts }
format.js { respond_with @posts }
任何想法如何发送得到这个工作? 非常感谢。
我得到了类似的工作:
format.html { render "posts/_posts", :locals => { :posts => @posts } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.