has_many field_for и вложенные атрибуты
Я пытаюсь изучить вложенные атрибуты с помощью простого приложения.
class Ticket < ActiveRecord::Base
has_many :avatars
accepts_nested_attributes_for :avatars
end
class Avatar < ActiveRecord::Base
belongs_to :ticket
end
<%= form_for @ticket do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :description %>
<%= f.text_field :description %>
<%= f.fields_for :avatar**s** do |m| %>
<%= m.label :name %>
<%= m.text_field :name %>
<% end %>
<%= f.button :submit, class: "btn btn-primary" %>
<% end %>
Использование:avatars(множественное число) поля не отображаются, вместо этого оно работает с:
<%= f.fields_for :avatar do |m| %>
Что мне не хватает?
редактировать
Спасибо вам всем.
Я нахожу проблему: на контроллере билетов
def new
@ticket = Ticket.new
@ticket.avatars.build #before this line is missing
end
Теперь я не знаю, как показать в представлении это вложенное значение
@ticket.comments.name
дай мне неопределенный метод name на контроллерах аватаров
1 ответ
Ну, вы создаете один аватар за раз, так как вы должны использовать единственное число.
Если вы хотите перебрать несколько аватаров, вам придется использовать foreach, <% @ticket.avatars.each do %>
,
Кроме того, взгляните на: http://www.createdbypete.com/articles/working-with-nested-forms-and-a-many-to-many-association-in-rails-4/