0

私はまだ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 テンプレートには、シンボル化されたパラメーターが含まれていることは知っています。stringsymbol

4

1 に答える 1