この方法でレコードを更新する必要があるのか 、それとも何かが欠けているのかわかりません。
5 つの列 (タイムスタンプと ID を含まない) を持つテーブルがあり、そのうち 3 つは個別で、2 つは更新されます。私が検索または作成する 3 つの異なる要素は、room_id、date、および source です。他の 2 つは価格と利用可能なスポットです (これらは時間ごと、日ごとなどに変化します)。
私の質問は、最初にレコードを検索または作成してから、価格とスポットを更新 (または作成) する必要があるか、それともすべてを一度に行うことができるかということです。私が現在行っている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