ccs.each do |cd|
relative_model = main_model.relative_model.where(start_date: XYZ, end_date: XYZ).first_or_initialize
relative_model.capacity = cd['capacity'].to_f
relative_model.save!
end根据上面的代码,first_or_initialize不能处理相关模型,每次都会创建新的记录。
下面是两个inr在后台运行的查询:
SELECT `capacity_commitments`.* FROM `capacity_commitments` WHERE `capacity_commitments`.`participants_subscription_id` = 1 AND `capacity_commitments`.`start_date` = '2016-11-16' AND `capacity_commitments`.`end_date` = '2016-11-21'
SELECT `capacity_commitments`.* FROM `capacity_commitments` WHERE `capacity_commitments`.`participants_subscription_id` = 1 AND `capacity_commitments`.`start_date` = '2016-11-16' AND `capacity_commitments`.`end_date` = '2016-11-21'需要初始帮助或指出上述代码中的错误之处?
发布于 2016-11-17 20:47:54
尝试使用find_or_initialize_by方法
relative_model = main_model.relative_model.find_or_initialize_by(start_date: XYZ, end_date: XYZ)https://stackoverflow.com/questions/40633067
复制相似问题