在类方法中访问范围

时间:2018-05-29 10:07:48

标签: ruby-on-rails activerecord

我有一个模型User,其关系为tags

class User < ActiveRecord::Base #id, name, email, ...
  has_many :tags
end

class Tag < ActiveRecord::Base #id, name, ...
  def self.add_tag(tag)
    self.create!({user_id:user.id, tag: tag})
  end
end

User.tags.add_tag("abc")

类方法add_tag如何知道引用的关系?

1 个答案:

答案 0 :(得分:-2)

我显然,在类方法中调用create会适当地设置范围

class User < ActiveRecord::Base #id, name, email, ...
  has_many :tags
end

class Tag < ActiveRecord::Base #id, name, ...
  def self.add_tag(tag)
    self.create!({ tag: tag})
  end
end

user.tags.add_tag("abc")

这个工作得很好