Краткая справка
Я создаю обычный форум для изучения / практики Rails.
User Model
has_many :topics
has_many :posts
Topic Model
has_many :posts
belongs_to :user
Post Model
belongs_to :user
belongs_to :topic
Однако, когда пользователь создает новую тему, я также хочу, чтобы он одновременно создал первое сообщение в этой теме (точно так же, как работают форумы). Кроме того, когда создатель темы редактирует тему, он также редактирует первое сообщение.
Итак, я добавил accepts_nested_attributes_for :posts
к модели темы.
# TopicController
def new
@topic = current_user.topics.new
@topic.posts.build
end
А вот вложенная форма:
# topics/_form
<%= form_for [@topic] do |topic| %>
<%= topic.text_field :name %>
<% topic.fields_for :posts do |post| %>
<%= post.text_area :content %>
<% end %>
<% end %>
Вопрос
Этот код работает. Пользователь создаст первое сообщение вместе с созданием темы.
Однако, поскольку другие пользователи создают сообщения для темы, а @topic.posts
расширяется, когда создатель темы редактирует тему, текстовые области для каждого сообщения в теме кажутся создателями темы редактируемыми.
Как я могу сделать так, чтобы Создатель Тем мог видеть и редактировать только первый пост Темы в форме views/topics/_form
??