我想在我的模型中添加条件(ForumsTopic),我需要当前的用户值。
这是我的ForumsTopic.rb:
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
带有“has_one:topic_track [...]”的行上的我有一个条件是user_id = current_user.id。
但是,我怎么能做到这一点?
答案 0 :(得分:1)
我在ForumsTrack
模型中使用了一个范围。
class ForumsTopic < ActiveRecord::Base
has_one :topic_track, :class_name=> 'ForumsTrack'
end
class ForumsTrack < ActiveRecord::Base
scope :for_user, -> (user) { where(user: user) }
end
然后我会从可用的地方(控制器,service_model等)传递current_user
。