Я пытаюсь создать форму, которая позволяет пользователю создавать новую Почту, Тег для этого сообщения и TagType для этого тега, все с одной кнопкой отправки.Одна форма для обновления нескольких моделей
Мои модели устанавливаются следующим образом:
class Post < ActiveRecord::Base
belongs_to :user
has_many :post_tag_relationships, dependent: :destroy
has_many :tags, through: :post_tag_relationships
.
.
end
class Tag < ActiveRecord::Base
has_many :reverse_post_tag_relationships, class_name: "PostTagRelationship"
has_many :posts, through: :reverse_post_tag_relationships,
class_name: "PostTagRelationship"
belongs_to :tag_type
.
.
end
class TagType < ActiveRecord::Base
has_many :tags
.
.
end
В контроллере страницы, где находится форма, у меня есть методы, определенные следующим образом:
@post = current_user.posts.build
@tag = @post.tags.build
@tag_type = @tag.tag_type.build
Моя форма отображается нормально, если Я только включает в себя пост и теги методы, как:
<%= form_for(@post) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div class="field">
<%= f.text_area :content, placeholder: "Compose new post..." %>
</div>
<%= fields_for(@tag) do |u| %>
<div class="field">
<%= u.text_area :name, placeholder: "Tag" %>
</div>
<% end %>
<%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>
Но когда я добавить fields_for (@tag_t ип), с:
<%= fields_for(@tag_type) do |y| %>
<div class="field">
<%= y.select :name %>
</div>
<% end %>
Я получаю неопределенный метод «название модели» для NilClass: Класс
Я довольно новый с Rails, и я думаю, что это что-то делать с тем фактом, что тег принадлежит_ tag_types (в то время как теги post_many - post). Если кто-то знает исправить, это было бы очень признательно. Благодарю.
Rails 3? https://github.com/ryanb/nested_form – omarvelous
Нет, используя Rails 4 – camt89