0
这里是我的数据结构:模特协会在哪里?
class Report < ActiveRecord::Base
has_many :keywords
end
class Keyword < ActiveRecord::Base
belongs_to :report
end
当创建一个Report
,关键字数据是从第三方API检索。
def create
@report = Report.new(params[:report])
@report.get_keywords
create!
end
Report
模型与返回第三方数据的服务对象进行交互。然后应将数据转换为keywords
,并且应该对新创建的Report
进行关联。
在检索数据后Report
模型中是否应该创建keywords
?该协会是否也在那里?
编辑:这是我的报告模型。如何从模型内部创建关联?
def get_keywords
data = ThirdPartyDataFetcher.new.fetch_keywords
create_keywords(data)
end
private
def create_keywords(data)
data.each do |key, value|
keyword = Keyword.new
keyword.description = key
keyword.total_value = value
# An association should be made and the keyword should be saved
self.keywords << keyword
keyword.save
end
end
如何从模型类中创建关联?我只是通过控制器 – mnort9
@ mnort9 ...'self.keywords << the_keyword_generator',或'='或其他什么来建立关联。虽然如果它来自API,我可能有一些注入关键字生成方法的方法。 –
你是什么意思?在Report类中,您有一个对关键字集合的引用,您可以使用它。例如: self.keywords ='key1' – ema