我不确定我是否应该以这种方式更新记录,或者我是否遗漏了什么。
我有一个包含 5 列(不包括时间戳和 id)的表,其中 3 列是不同的,2 列将得到更新。我将找到或创建的 3 个不同之处是 room_id、日期和来源。其他 2 个是可用的价格和位置(每小时、每天等变化)
我的问题是,我应该先找到或创建记录,然后更新(或创建)价格和位置,还是可以一次完成?你可以看到我现在做的两种方式,我不确定它是否真的在做我期望的事情。
另外,像这样进行 find_and_create_by 有什么缺点吗?
谢谢
private
def self.parse_data(params,data)
data.beds.each do |bed|
room = Room.find_or_create_room(bed.title, params[:id])
#find clones somehow
#puts bed.nights.first.price
bed.nights.each_with_index do |night,index|
available = Available.find_or_create_by_room_id_and_bookdate_and_source(
:room_id => room.id,
:bookdate => (params[:date].to_date)+index,
:source => data.class.to_s#,
#:price => night.price
)
#available.price = night.price
#available.spots = night.spots
#available.save
end
end