nil的未定义方法`attachments':NilClass

时间:2014-11-24 10:34:22

标签: ruby-on-rails ruby-on-rails-4

我正在使用paperclip构建一个应用程序来上传多个文件。文件正在后端保存。我用控制台检查了它。 在显示页面中显示文件时,它正在给我

undefined method `attachments' for nil:NilClass 

show.html.erb

<div class="row">
      <ul class="thumbnails files">
        <% @gallery.attachments.each do |attachment| %>
          <li class="span3" id="attachment_<%= attachment.id %>">
            <div class="thumbnail">
              <%= image_tag attachment.image_url %>
            </div>
        <% end %>
      </ul>
    </div>

controller.rb

def create
@gallery = current_user.gallery.new(galley_params)
respond_to do |format|
  if @gallery.save
    if params[:attachments]
      params[:attachments].each {|attachment|
        @gallery.attachments.create(attachment:  attachment)
      }
    end
  end
  format.js{ render nohing: true}
end
end

有人可以帮助我的代码中出现此错误的含义。 谢谢!

1 个答案:

答案 0 :(得分:2)

该错误非常具有描述性。 @gallerynil,因此您可能未在@gallery操作中设置show变量(此处create操作的代码无关紧要)。所以你应该有这样的东西:

def show
  @gallery = current_user.gallery
end