在Rails中的另一个控制器中渲染控制器的视图

时间:2010-01-02 17:48:53

标签: ruby-on-rails model controller

同样的问题已被多次询问,但我无法找到适合我的解决方案。

我有三个型号,帖子,用户和图片(回形针)。

我使用restful_authentication并进行设置,以便每个用户只能在帖子/索引中看到他/她的帖子。我也让他能够上传个人资料照片。

我的问题是如何拍摄照片/索引并在帖子/索引中显示。我想在帖子/索引页面上显示缩略图,然后是帖子。

我使用过partials,但是我收到了错误

NoMethodError in Posts#index

Showing app/views/us/_picture.html.erb where line #1 raised:

You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each

Extracted source (around line #1):

    1: <% for u in @us %>
    2:   <tr>
    3:     <td><%= image_tag u.picture.url(:thumb) %></td>
    4:     <td><%=h u.name %></td>

我看到它正在尝试做什么,如何解决它以便它只显示上传的图片。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

错误是说您没有将@us实例变量分配给模板,这通常是您在控制器中执行的操作。

模板编译步骤在第一个迭代步骤中遇到问题(迭代@us数组),它甚至没有达到尝试运行图片访问/渲染步骤的程度,这可能会也可能不会出现问题它自己的。

在你的控制器中抓取一组用户(带图片)并将其分配给@us,一些基本的伪代码:

class PostsController < ApplicationController
  def index
   @us = User.find(:limit => 10, :include => [:picture])
  end
end