Im интересует почему моя вложенная форма в RoR оленья кожа сохранить дочерние объекты :(fields_for не сохраняет объект грешат рельсы
На данный момент, это просто сохранить значение Parent (Printer) и делает ребенка (цвет) исчезают на втором визуализации (ошибка)! Что я делаю неправильно?
родитель модель
class Printer < ActiveRecord::Base
belongs_to :user
validates :user_id, presence: true
validates :model, presence: true
has_many :colors, dependent: :destroy
accepts_nested_attributes_for :colors
end
детская модель
class Color < ActiveRecord::Base
belongs_to :printer
validates :color, presence: true
end
View (new.html.erb)
<%= form_for @printer do |p|%>
<%= p.text_field :model %>
<%= p.fields_for :colors do |color|%>
<%= color.text_field :color%>
<% end %>
<%= p.submit "Add"%>
<% end %>
И контроллер
def create
@printer = current_user.printers.build(printer_params)
if @printer.save
redirect_to @current_user
else
render 'new'
end
end
def new
@printer = Printer.new
@printer.colors.build
end
private
def printer_params
params.require(:printer).permit(:model)
end
Edit: Это один помогает
private
def printer_params
params.require(:printer).permit(:model, colors_attributes: [:color])
end
Спасибо! Я знал, что что-то может быть неправильно с атрибутами, но не знал, как их перечислить. Это именно то, что я искал. –