这是我的数据结构:
class Report < ActiveRecord::Base
has_many :keywords
end
class Keyword < ActiveRecord::Base
belongs_to :report
end
创建a 时Report
,会从第三方 API 检索关键字数据。
def create
@report = Report.new(params[:report])
@report.get_keywords
create!
end
该Report
模型与返回第三方数据的服务对象交互。然后应将数据转换为keywords
并与新创建的Report
.
是否应该在检索数据后keywords
在模型中创建?Report
协会也在那里成立吗?
编辑:这是我的报告模型。如何从模型内部创建关联?
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