2016-07-20 5 views
0

私はRailsの方法で以下のようにしています。予定を考えるとRails APIのbelongs_toアソシエーションの保存

サービスに属している:

appointment = Appointment.new(appointment_params) 
appointment.service = Service.find(params[:service][:id]) 
appointment.save 

私がこれまで試したどのような:

appointment = Appointment.new(appointment_params) 
appointment.build_service(params[:service]) 
appointment.save 

しかし、このアプローチで、私はのでaccepts_nested_attributes_forを使用することはできませんForbiddenAttributesError

を取得しています強いパラメーターではservice_attributesを使用する必要がありますが、UIアプリケーションは_attributesではなくAJAXリクエストを送信しますが、ちょうど0その属性を持つ。

Railsで強制的に使用する場所が好きではありません。_attributes Angular.jsやReact.jsなどの人気のあるJavascriptフレームワークは、このパターンを強制したり奨励したりしません。これをオーバーライドして、強いパラメータを使用してaccepts_nested_attributes_forを使用する利点がある方法はありますか?

+0

あなたはあなたのコントローラと同様にappointment_params' 'の実装に送っているデータの一例を提供することはできますか? –

答えて

0

IDを設定するだけです。しかし、あなたのモデルファイルを見ることは役に立ちます。

appointment.service_id = params[:service][:id] 

または

appointment.service_id = Service.find(params[:service][:id]).id # if you know service exists... 
関連する問題