Я вложенные атрибуты в моей форме и 2 модели - произведения искусства и ArtDescription, которые связанные HAS_ONE/BELONGS_TO, но я получил ошибкуActiveRecord :: AssociationTypeMismatch в Rails 4
ActiveRecord :: AssociationTypeMismatch в ArtworksController # создать ArtDescription (# 30842620) ожидается, получил ActionController :: Параметры (# 9409680)
что не так?
Форма
<%= form_for :artwork, url: artworks_path do |f| %>
<p>
name:<%= f.text_field :name %></br>
author:<%= f.text_field :author %></br>
date:<%= f.text_field :date %></br>
museum:<%= f.text_field :museum %></br>
place:<%= f.text_field :create_place %></br>
comment:<%= f.text_field :comment %></br>
</p>
<p>
<%= f.fields_for :art_description do |artdesc|%>
type:<%= artdesc.text_field :type %></br>
base:<%= artdesc.text_field :base %></br>
style:<%= artdesc.text_field :style %></br>
genre:<%= artdesc.text_field :genre %></br>
plot:<%= artdesc.text_field :plot %></br>
reference: <%= artdesc.text_field :reference %></br>
format_weight: <%= artdesc.text_field :format_weight%></br>
format_height:<%= artdesc.text_field :format_height %></br>
<% end %>
<%= f.submit ('Ok')%> </p>
<% end %>
Контроллер ArtworksController
def create
@artwork = Artwork.create(artwork_params)
if @artwork.save
redirect_to artwork_path(@artwork)
else
render 'new'
end
end
Модель
class Artwork < ActiveRecord::Base
has_one :art_description
accepts_nested_attributes_for :art_description
end
Сильные Parametrs
def artwork_params
params.require(:artwork).permit(:name, :author, :date, :museum, :comment, :create_place, art_description: [ :type, :base, :style, :genre, :plot, :reference, :format_weight, :format_height])
end
Возможный дубликат [? Почему я получаю AssociationTypeMismatch при создании моей модели объекта] (http://stackoverflow.com/questions/2663141/why -do-я-найми-associationtypemismatch-когда-создание-моя-модель-объект). Принятый ответ, в частности, может дать решение, которое вы ищете. –