我不确定我是否应该以这种方式更新记录,或者我是否遗漏了某些东西.
我有一个包含5列(不包括时间戳和id)的表,其中3列是不同的,2表将更新.我将找到或创建的3个不同的是room_id,date和source.另外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
Run Code Online (Sandbox Code Playgroud)