私は1つのモデルBiblioと1つのモデルを持っています。彼らはお互いに関係している。はネストされたフォームの検証を行うことができません
新しいビブリオを追加すると、ネストされたフォームが作成されます。
<%= form_for :biblio, url: administration_add_biblio_path do |f| %>
<%= f.fields_for :authors, Author.new do |aut| %>
<%= aut.hidden_field :name , :name =>"biblio[authors][1]" %>
<% end %>
これは、コントローラに送信されているのparamsの一部です:私はそうのようなことを行い、これを持っている
def params_biblio
params.require(:biblio).permit(
:authors)
:biblios_controllerで
"biblio"=>{"authors"=>{"1"=>{"name"=>"Vabien"}}, "title"=>"test",....
が、私はこれを持っています問題:Unpermitted parameter: authors
モデルBiblioは次のようになります。
class Biblio < ApplicationRecord
has_and_belongs_to_many :authors
validates_presence_of :authors
accepts_nested_attributes_for :authors
validates_associated :authors
とクラス著者:
class Author < ApplicationRecord
has_and_belongs_to_many :biblios
validates :given_name, presence: true
validates :name, presence: true
問題は、作者のこの検証が常に失敗するということです。私はこれが[:author][:name]
が著者モデルに渡されたという事実によると思いますが、それは問題であると確信していません。
ビブリオにはたくさんの作家がいるかもしれないが、作者["1"]の存在のみが検証される必要があるということを付け加えておきます。
これは誤植ですか? 'authors 'のためのauteurs – MurifoX
はいタイプ、あなたがそのコメントをしたときに私はそれを修正しました。フランス語から英語への翻訳は忘れてしまった。今終わった。 – thiebo
authors_bibliosテーブルを作成しましたか?テーブルがAuthors_Bibliosで、他の方法ではないことを確認してください。 Railsは、これらのテーブルに語彙順に名前が付けられると考えています。 – bkunzi01