У меня есть одна модель Biblio и одна модель Авторы. Они хатмм по отношению друг к другу.не может пройти проверку вложенной формы
Добавление новой библии, у меня есть вложенная форма. Я делаю это так:
<%= 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, которые передаются в контроллер:
"biblio"=>{"authors"=>{"1"=>{"name"=>"Vabien"}}, "title"=>"test",....
В biblios_controller, у меня есть:
def params_biblio
params.require(:biblio).permit(
:authors)
, который имеет этот проблема: 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"].
Опечатка? 'auteurs' для' authors' – MurifoX
yes type, я исправил его, как вы сделали этот комментарий. Забыл перевести с французского на английский. Теперь сделано. – thiebo
Вы создали таблицу authors_biblios? Убедитесь, что таблица - Authors_Biblios, а не наоборот. Rails ожидает, что такие таблицы должны быть названы в лексическом порядке. – bkunzi01