Rails 4 current_user(gem devise)访问模型

时间:2016-04-05 12:59:31

标签: ruby-on-rails ruby devise model

我想在我的模型中添加条件(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。

但是,我怎么能做到这一点?

1 个答案:

答案 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