find_or_create_by no Rails 3 e atualização para criar registros
Não tenho certeza se devo atualizar os registros dessa maneira ou se estou perdendo alguma coisa.
Tenho uma tabela com 5 colunas (não incluindo registros de data e hora), 3 das quais são distintas e 2 que serão atualizadas. As 3 distintas pelas quais irei encontrar ou criar são room_id, date e source. Os outros 2 são preços e vagas disponíveis (eles mudam a cada hora, diariamente etc.)
Minha pergunta é: devo primeiro encontrar ou criar o registro e depois atualizar (ou criar) o preço e os pontos ou posso fazer tudo de uma só vez? Você pode ver as duas maneiras pelas quais estou fazendo isso agora e não tenho certeza se realmente está fazendo o que estou esperand
Also, existe alguma desvantagem em fazer um find_and_create_by como este?
Obrigad
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