应用程序/模型/post.rb
class User < ActiveRecord::Base
has_many :posts, :dependent => :destroy
accepts_nested_attributes_for :posts
attr_accessible ... :posts_attributes
...
应用程序/模型/post.rb
class Post < ActiveRecord::Base
belongs_to :user
has_one :user
...
应用程序/视图/发布/新
<% form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<div><%= f.label :username %><br />
<%= f.text_field :username, :autofocus => true %></div>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.label :password %><br />
<%= f.password_field :password %></div>
<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></div>
<%= f.fields_for :posts do |post_fields| %>
<%= post_fields.label :title %><br />
<%= post_fields.text_field :title %></div>
...
路线.rb
resources :posts
一是用户注册作品的形式。但是帖子部分未显示在当前配置中。如果我将 fields_for :posts 切换到 fields_for :post,我会得到完整的表单,但在提交时我会收到错误“无法批量分配受保护的属性”。
现在,如果我将 :post 添加到 attr_accessible,我会收到错误“未知参数帖子”
如果我要将它移动到用户控制器,我该如何覆盖默认的设计控制器?那还重要吗?