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

questionAnswers(2)

yourAnswerToTheQuestion