【发布时间】:2018-05-29 10:07:47
【问题描述】:
我有一个模型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如何知道被引用的关系?
【问题讨论】:
-
这里
self.create!({user_id:user.id, tag: tag}),user未定义 -
这个
User.tags.add_tag("abc")会导致用户类的未定义方法标签错误 -
您可以简单地使用
user.tags.create!(tag: 'abc'),而不是使逻辑如此复杂。除非您在其中进行大量计算/分配,否则您不需要单独的方法。
标签: ruby-on-rails activerecord