我是 Rails 和 Ruby 的新手。我正在尝试在 Rails 3.2.11 应用程序中实现 Data-Context-Interaction /aka DCI/ 范例。我有与User
模型one-to-many
关联的Topic
模型。我正在尝试编写一个mixin User
,但它们不起作用,请您提供一些调试帮助。
我的混合看起来像:
module Speaker
extend ActiveSupport::Concern
included do
has_many :assigned_topics, class_name: 'Topic', foreign_key: 'speaker_id'
end
def add_topic(topic)
topic.speaker = self
topic.save
end
def remove_topic(topic)
topic.speaker = nil
topic.save
end
end
当我运行以下代码时,出现错误:
u = User.first
u.extend Speaker
u.assigned_topics
NoMethodError: undefined method `assigned_topics' for #<User:0x00000002f5dca8>