我试图在更多的Rails方式下面。
鉴于约会属于服务:
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
然而,通过这种方法,我得到了ForbiddenAttributesError
我无法使用accepts_nested_attributes_for
,因为在强params中我需要使用service_attributes
,但我的UI应用程序在没有_attributes
的情况下发送AJAX请求,而只发送service
及其属性。< / p>
我真的不喜欢Rails强制您使用_attributes
流行的Javascript框架(如Angular.js和React.js)并不强制执行或鼓励这种模式。有没有办法覆盖这个并仍然使用强参数,并使用accepts_nested_attributes_for
?
答案 0 :(得分:0)
尝试设置ID。不过,查看模型文件会很有帮助。
appointment.service_id = params[:service][:id]
或
appointment.service_id = Service.find(params[:service][:id]).id # if you know service exists...