2017-03-08 13 views
0

私はユーザーモデルhas_oneを持っています。バイクとユーザーaccepts_nested_attributes_forバイク。私のコントローラで対応するレコードをhas_one関連で更新するにはどうすればいいですか?

class User < ApplicationRecord 
    has_one :bike 

    accepts_nested_attributes_for :bike 
end 

class Bike < ApplicationRecord 
    belongs_to :profile 
end 

私はこのような自転車のパラメータを渡す:

params.require(:purchase).permit(bike_attributes: [:id, :type, :brand]) 

その後私は、新しい情報

def update 
    current_user.update(purchase_params) 
end 

でCURRENT_USERを更新しています私の問題はそれがeです現在のユーザーにとって非常に新しい変更、新しいバイクレコードが作成されます。たとえば、現在のユーザーのバイクに関する情報を10回更新すると、10台の自転車レコードが作成され、最後の1台が作成されます。Bike.lastは、user_idを保持します。

どのようにデータベースを防止し、実際には対応するレコードを1つだけ更新しますか?

ありがとうございます。

答えて

1

paramsid属性で自転車が送信されているかどうかを確認します。自転車用に隠されたidフィールドが含まれている必要があります。

関連する問題