2016-04-05 22 views
0

Modelime koşul eklemek istiyorum (ForumsTopic) ve mevcut kullanıcı değerine ihtiyacım var. has_one" ile on lineRaylar 4 current_user (gem devise) modele dönüştürüldü

class ForumsTopic < ActiveRecord::Base 
belongs_to :forum 
belongs_to :user 
has_one :topic_track, ->(user){where(user_id: current_user.id)}, :class_name=> 'ForumsTrack' 
has_many :forums_messages 

: Burada

benim ForumsTopic.rb var topic_track [...] i nasıl ben can,

user_id = current_user.id ile bir şartım var ama. emin olun?

cevap

1

ben ForumsTrack modelinde bunun için bir kapsam kullanmayı tercih ediyorum.

class ForumsTopic < ActiveRecord::Base 
    has_one :topic_track, :class_name=> 'ForumsTrack' 
end 

class ForumsTrack < ActiveRecord::Base 
    scope :for_user, -> (user) { where(user: user) } 
end 

Daha sonra current_user'u uygun bir yerden (denetleyici, service_model, vb.) Geçirirdim.

+0

Bu işe yarıyor! ama sadece ForumTrack üzerinde kod ile bir hata: 'kapsam: for_user, -> (kullanıcı) {nerede (kullanıcı: kullanıcı)}' (önce ok (kullanıcı) ") – Shinix

+0

Woops, Teşekkürler! Bunu düzenleyeceğim. – born4new