下面是我的模型。用语言来形容它,“节目”有“船员”。“船员”由“人”组成。“Crew”中“Show”和“People”之间的关联可以是“Actor”或“Other”类型。我有来自“显示”表单上的自动完成 UI 的令牌,其中“人物”填写在“演员”字段或“其他”字段中。
问题:在“显示”模型的actor_tokens=(ids)
和actor_tokens=(ids)
方法中,我保存进入的令牌,如何将关系保存为“演员”或“其他”?
从中保存的所有关联actor_tokens=(ids)
都应为“演员”类型,并且从中保存的所有关联other_tokens=(ids)
都应为“其他”类型,并且
我正在寻找一个优雅的解决方案来匹配使用 *collection_singular_ids=ids* 来保存我的令牌。
船员模型
class Crew < ActiveRecord::Base
belongs_to :show
belongs_to :person
attr_accessor :type #this can be 'actor' 'other' string
end
人物模型
class Person < ActiveRecord::Base
attr_accessible :first_name, :handle, :last_name
has_many :crews
has_many :shows, :through => :crews
end
显示模型
class Show < ActiveRecord::Base
attr_accessible :handle, :name, :crew_tokens
has_many :crews
has_many :people, :through => :crews
attr_reader :actor_tokens
def actor_tokens=(ids)
self.person_ids = ids.split(",")
#----->associate tokens coming in here as type = 'actor'
end
def other_tokens=(ids)
self.person_ids = ids.split(",")
#----->associate tokens coming in here as type = 'other'
end
end
PS:请为这篇文章建议一个更好的标题!
谢谢!