繁体   English   中英

Rails 3:在控制器中发送局部变量以查看?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM