【问题标题】:Getting undefined 'image' errors when using paperclip for image upload?使用回形针上传图像时出现未定义的“图像”错误?
【发布时间】:2014-10-11 03:46:42
【问题描述】:

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

我正在使用 Devise 进行身份验证。和用于图像上传的回形针。这令人沮丧,因为它有时对我有用,但有时会给我带来像这样令人讨厌的错误。感谢您的帮助,我已经卡在这里几天了。

这是我的帖子索引:(第 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

【问题讨论】:

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


    【解决方案1】:

    你得到的错误很明显。看线:

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

    这是你的current_usernil,因此你得到:

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

    这意味着您在用户未登录(即未建立用户会话)时请求此方法并加载此视图。请在您的PostsController:before_filter :authenticate_user! 中打勾,或者在访问PostsController 的索引方法之前尝试登录。

    【讨论】:

    • 非常感谢,希望大家都这样回答,帮助我更深入的了解了一切。我不再收到错误消息,但不是显示图像,而是“缺少链接”,我确保上传了图像。
    • @joesmith:很高兴您的问题得到解决。如果答案对您有帮助,请单击答案左侧的复选标记接受它,以便其他人可以将其用作参考(如果他们将来遇到同样的问题)。谢谢。
    • @JoeSmith:您为什么要删除您在帖子中提到的错误并将其更改为好像问题从未存在过一样,您是否知道您的更新使答案现在变得不那么有用和无关紧要?您有“丢失”链接问题,因为图像路径设置不正确。即保存在表中的路径无法解析实际文件位置。我希望它有所帮助。
    • 我正在用当前的信息状态更新问题,希望得到一个让图像上传完全正常的答案。是的,这有帮助,它在哪里没有在视图中正确设置?
    • @JoeSmith:如果这是一个新问题,请再问一个问题。我没有正确设置的意思是:current_user.image.url(:thumb) 中的数据不能具有图像驻留在文件系统上的实际路径。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 2012-11-22
    • 2019-03-31
    • 1970-01-01
    • 2014-08-19
    • 2016-04-15
    相关资源
    最近更新 更多