新手问题 rails 渲染多部分内容到一个页面

minix · 2012年10月10日 · 最后由 minix 回复于 2012年10月11日 · 2519 次阅读
params[:process_more_ids].each do |process_more_id|       
    @products = Sys.where("ip_id = #{process_more_id}")         
      render controller: "home", action: "edit"                               
     return                                                                 
 end      

上面代码中的:process_more_ids的值为 10, 11, 12,得到的结果是渲染 id 为 10 的页面

如果要同时将 10, 11, 12 这三个 id 的结果渲染到一个页面,要怎样做才到达到这个效果?

虽然不理解楼主的要求,不过想说一句,查询语句这样写好一点吧。 @products = Sys.where("ip_id = ?", process_more_id)

看看 render partial 的文档

In controller:

@products = Sys.where(:ip_id => params[:process_more_ids])

On view:

<% @products.each do |process_id| %>
    <%= render "process_id", :process_id => process_id %>
<% end %>

或 (定义好 _product.html.erb)

<%= render @products %>

很感谢各位的帮助,问题已经解决了。 @ashchan 是因为我的 controller 写不好导致的,使用你写的 controller 就可以了。

谢谢!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号