背景簡介`accepts_nested_attributes_for`,但只修改了第一個孩子
我正在做一個傳統的論壇,學習/實踐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
添加到Topic模型中。
# 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
展開時,當主題創建者編輯主題時,主題中每個帖子的文本區域顯示爲可由主題創建者編輯。
我該怎麼做才能使Topic創建者只能看到並編輯views/topics/_form
表單上的Topic的第一篇文章?