私はまだRails 4 の強力なパラメーターActiveModel::ForbiddenAttributesError
に頭を悩ませようとしています。別のモデルのパラメーターを使用してフォームを送信しようとすると、それが発生しbelongs_to
ます。
Product :has_many DiskFiles
いくつかの調査の後、キーをこのようなものに渡す前に記号化する必要があることに気付きましたForbiddenAttributesError
。したがって、これは機能します:
#disk_files_controller.rb
def update
product = @disk_file.create_product(params[:product].symbolize_keys) if params[:product]
...
end
パラメータの検査[:製品]:
>> params[:product]
=> {"title"=>"Registration Test5", "year"=>"1988", "region_id"=>"7"}
どちらの場合でも、これらのパラメーターを許可しています (特に):
def disk_file_params
params.require(:disk_file).permit(:filename, :file_path, :title,
:product, :year, :region_id)
end
すべてのパラメーターが最初はそのままであるため、 ?!?の代わりにパラメーターstrings
のバージョンを許可する必要があります。ここで何がベストプラクティスなのかわからない?!? Rails 4 テンプレートには、シンボル化されたパラメーターが含まれていることは知っています。string
symbol