0

作为一个 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

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

蒂亚!

4

1 回答 1

2

logo_for我在你的方法中看到了一些错误。

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

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

于 2012-05-01T14:22:02.300 回答