使用回形针进行图像上传时出现未定义的“图像”错误?

时间:2014-10-10 19:06:45

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

我正在尝试使用回形针在帖子索引中显示用户的图像,但我得到的只是一个“缺失”的链接。

我正在使用Devise进行身份验证。还有用于图片上传的回形针。这是令人沮丧的,因为它对我来说有些时间,但occaisonaly给我带来了像这样的烦人的错误。谢谢你的帮助,我已经被困在这里几天了。

这是我的帖子索引:(错误在第8行引发)

<% @posts.each do |post| %>
  <ul>
    <li>
   <div class="well well-large">
   <div class="media">
    <a class="pull-left" href="#">
     <%= image_tag current_user.image.url(:thumb) %>
    </a>
    <div class="media-body">
     <h4 class="media-heading"><%= post.title %></h4>
      <%= post.content %>

<!-- Nested media object -->
      <div class="media">

      </div>
     </div>
   </div>
 </div>
<% end %>
   </li>

class User < ActiveRecord::Base
    has_many :posts
    has_attached_file :image, :styles => { :thumb => "100x100>" },
          :default_url => "/images/:style/missing.png"

validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable
end

Post.rb

class Post < ActiveRecord::Base
belongs_to :user
end

以下是我的帖子控制器中的post_params:

private

  def post_params
    params.require(:post).permit(:title, :content)
  end

1 个答案:

答案 0 :(得分:0)

从错误中可以看出,你得到了。看看这一行:

<a class="pull-left" href="#">
  <%= image_tag current_user.image.url(:thumb) %>
</a>

current_user位于nil,因此您获得了:

  

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

这意味着您正在请求此方法并在用户未登录时加载此视图,即未进行任何用户会话。请检查PostsControllerbefore_filter :authenticate_user!或尝试登录,然后再访问PostsController的索引方法。