Omniauthでログインしたユーザーに属するタグを自分のビューに表示する方法がわかりません。acts_as_taggable_onでタグ付けされた現在のユーザーのタグを更新して表示するにはどうすればよいですか?
ビュー内のページには、(そのページから更新できるフォームを介して)ランダムな写真とタグが読み込まれます。それは動作しますが、FacebookアカウントAでログインすると、FacebookアカウントBでログインしたのとまったく同じタグが表示されます。
これでwhiny nilエラーが発生します誤って4になる - あなたは本当にゼロのIDを望んでいた場合、
をOBJECT_ID使用した図である:更新
<%= render 'tag_form' %>
:フォームがされています
(明らかに私は今のタグを更新することはできませんので、現在空)、以下のようタグはまた、ユーザーのダッシュボードに呼び出されます。
<%= brand.taggings(:tagger_id => current_user.id, :tagger_type => 'User').collect{|tagging| tagging.tag.to_s}.join(", ") %>
アプリケーションコントローラは、現在のユーザを示す
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
ブランドコントローラ
helper_method :current_user
def index
@brands = Brand.all
@brand = Brand.order("RANDOM()").first
end
を追加しました:ブランドモデル
attr_accessible :name, :tag_list, :current_user
acts_as_taggable_on :tags
belongs_to :user
before_save :set_tag_owner
def set_tag_owner
set_owner_tag_list_on(@brand, :tags, self.tag_list)
self.tag_list = nil
end
ルネ、あなたの助けは非常に貴重です。私の最後の問題は、条件tagger_id => current.user.idが機能しないことです。現在、保存されたタグはすべて表示されます。サーバーが((taggings.tagger_id IS NULLとtaggings.context = 'tags')))これはおそらく理由です。 – Simpleton
あなたのコードはタギング後に.whereが必要です。私は、現在のユーザーのものではないタグを表示しないが、今は上記のコメントと同じ理由でタグがないので(tagger_idはNULL)、それにはタグがないショー。 – Simpleton
ああ、私はそれが部分的なフォームと関係があると思う。フォームテキストフィールドは、以前に追加されたタグを読み込みますが、current_userだけでなくすべてのタグを読み込みます。したがって、保存すると、current_user.idではなくNULLに保存されます。これを修正するには? – Simpleton