【问题标题】:Displaying User Logo After Upload + Devise上传+设计后显示用户徽标
【发布时间】:2012-05-01 14:16:44
【问题描述】:

作为 Rails 新手,我遇到了一个我无法弄清楚的问题。我目前使用 Devise 进行身份验证,使用 Paperclip 进行附件。我已成功向用户编辑添加了一个上传字段,并且图像已成功保存。

我目前的设置是我有一个带有默认徽标的标题。我正在尝试创建一个调用来检查用户是否有徽标。

应用程序助手:

def logo_for(user)

if user_signed_in? && user.logo.present?
  image_tag user.logo_url(:small)
else 
  image_tag("logo.png", :alt => "Sample App", :class => "round")

   end
end

_header.html.erb

<%= link_to logo_for(@user), root_path %>

用户.rb

has_attached_file :logo,
:styles => { :small => "150x150>" },
:url  => "/images/logos/:id/:style/:basename.:extension",
:path => ":rails_root/public/images/logos/:id/:style/:basename.:extension",
:convert_options => { :all => "-auto-orient" }

 attr_accessible :users, :logo, :logo_file_name, :logo_content_type, :logo_file_size, :logo_updated_at
end

我收到错误声明 NO HANDLER undefined Method

我该如何着手检查用户是否已上传徽标并显示该徽标而不是默认显示?

TIA!

【问题讨论】:

    标签: ruby-on-rails devise paperclip


    【解决方案1】:

    我发现您的 logo_for 方法存在一些问题。

    尝试将user.logo.present? 更改为user.logo?,这是提供回形针的功能(我相信)。此外,您的第一个 image_tag 参考应如下所示:

    image_tag user.logo.url(:small),注意我删除了下划线。

    【讨论】:

    • 这是我收到的错误:undefined method `logo?'对于 nil:NilClass
    • 您使用的是设计吗? user 是什么?如果您使用的是 Devise,它可能应该是 current_user.logo?
    猜你喜欢
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 2017-08-29
    • 2013-10-11
    相关资源
    最近更新 更多