Я новичок в рубинах на рельсах espacially вложенных форм. Я пытаюсь создать автора и книгу в одной и той же форме, зная, что между ними существует много разных отношений, и мой код представлен ниже. book.rbВложенные атрибуты и params.require error
class Book < ActiveRecord::Base
has_many :exemplaires
has_many :talks, inverse_of: :book
has_many :subjects, through: :writings
has_many :writings
has_many :authors, through: :talks
accepts_nested_attributes_for :authors
validates :title, presence: true
end
author.rb:
class Author < ActiveRecord::Base
has_many :talks
has_many :books, through: :talks
end
talk.rb
class Talk < ActiveRecord::Base
belongs_to :book
belongs_to :author
end
book_controller.rb
class BooksController < ApplicationController
def index
end
def list
@books= Book.all
end
def new
@book = Book.new
@[email protected]
end
def create
@book= Book.new(book_params)
if @book.save
flash[:notice]='goood'
redirect_to admin_manage_path
else
flash[:alert]='ouups'
redirect_to root_url
end
end
private
def book_params
params.require(:book).permit(:title, :pages, :resume, :authors_attributes)
end
end
книги \ new.html.erb
<h1>Add new book</h1>
<%= form_for(@book) do |form| %>
<%= form.label :title %>
<%= form.text_field :title %>
<%= form.fields_for :authors do |tag_form| %>
<%= tag_form.label :f_name %>
<%= tag_form.text_field :f_name %>
<% end %>
<%= form.submit "Submit" %>
<% end %>
, что я получил в качестве ошибки
Обработка BooksController # создать в HTML Параметры: { "utf8" => "✓", "authenticity_token" => "qpGng8tOiC/B5VX2tphuhAe + Wq1vx7it1vEO6XmwZmI =" , "book" => {"title" => "booooooooooooook", "authors_attributes" => {"0" => {"f_name" => "auuuuuuuuuuuuuuuutut"}}}, "commit" => "Отправить"} Неперечисленные параметры: authors_attributes
спасибо за реагирование, но я уже пробовал, и это дает мне эту ошибку «нет неявного преобразование символа в Integer» – rota90
Эта проблема может быть связана с чем-то еще, но вы один шагом впереди сейчас, потому что вы определенно нужно указать белые поля автора, как я указал. Можете ли вы опубликовать полную ошибку, которую вы получаете? – Alireza
это то, что визуализирует сервер « Обработка книгамиController # create as HTML Параметры: {" utf8 "=>" ✓ "," authenticity_token "=>" qpGng8tOiC/B5VX2tphuhAe + Wq1vx7it1vEO6XmwZmI = "," book "=> {" title "=>" kjqfghkjdgf "," authors_attributes "=> {" 0 "=> {" f_name "=>" fdqkhvfjkvkjv "}}}," commit "=>" Отправить "} Завершено 500 Внутренняя ошибка сервера в 2 мс TypeError (неявное преобразование символа в целое число): app/контроллеры/books_controller.rb: 29: in '[] ' app/контроллеры/books_controller.rb: 29: в' book_params' приложение/контроллеры/books_controller. rb: 14: в 'create '' – rota90