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/

Другие вопросы по тегам