0

我得到的错误在我的部分 _pins.html.erb 中:

Pins#index 中的 NoMethodError -- nil:NilClass 的未定义方法 `avatar' 提取的源代码(第 4 行附近):

3:      <div class="avatar-position">
4:          <%= image_tag pin.user.avatar.url(:thumb), class: "thumbsize" %>
5:      </div>

引脚/索引视图 (index.html.erb) 有<%= render @pins %>

我通过索引控制器渲染它,所以在 pins_controller.rb 我有:

  def index
    @pins = Pin.all
    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @pins }
    end
  end

奇怪的是它在生产中运行良好。当我推送到 heroku 时,我没有收到任何错误,一切都很好。我最近确实将我的 Mac OSX 更新到 10.8.5,但如果那是罪魁祸首,我不是吗?不同的是,在开发中,我的图像资产(头像)保存在本地,而在生产中,它们使用回形针保存在亚马逊 AWS 上......有什么想法吗?

4

1 回答 1

2

这里的局部变量是什么pin?在<%= image_tag pin.user.avatar.url(:thumb), class: "thumbsize" %>和一些pin has no user所以你得到的是avatar' for nil:NilClass原样pin.usernil

所以让它

<%= image_tag pin.user.avatar.url(:thumb), class: "thumbsize"  unless pin.user.nil? %>
于 2013-09-19T05:15:26.497 回答