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 に答える