通过属于编辑对象

时间:2012-08-04 15:22:06

标签: ruby-on-rails relationship has-many belongs-to

所以当我编辑Thread对象时,我只想编辑第一个Post条目。

这是我的设置:

class Thread < ActiveRecord::Base
attr_accessible :name, :posts_attributes

has_many :posts, dependent: :destroy
accepts_nested_attributes_for :posts, reject_if: lambda { |a| a[:content].blank? }
end

class Post < ActiveRecord::Base
attr_accessible :content, 

belongs_to :discussion
end

<%= provide(:title, "Edit Discussion")%>
<%= form_for(@thread) do |f| %>
    <%= render 'shared/error_messages', object: f.object %>

    <%= f.label :name %>
    <%= f.text_field :name, size: 60 %>

    <%= f.fields_for :posts do |builder| %>

        <%= builder.label :content %>
        <%= builder.text_area :content, :size => "60x15" %>
    <% end %>

    <%= f.submit "Edit Thread" %>
<% end %>

如果我按原样运行此代码,那么我会得到一个页面,我可以编辑所有帖子,我想是因为:帖子来自关联。但我只想要第一篇文章

然后,如果我更改:发布到@ discussion.posts.at(0)以获得第一篇文章,那么我可以继续编辑页面...并且form_for正确显示但是在激活更新时,它说我无法编辑受保护的属性:帖子...有关如何仅显示&amp;的任何想法编辑第一篇文章?

0 个答案:

没有答案