应用程序/模型/ post.rb设计套装形式,的has_many关系
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>
...
routes.rb
resources :posts
首先,用户注册作品的形式。但是帖子部分在当前配置中不显示。如果我将fields_for:posts转换为fields_for:post,我会得到完整的表单,但是在提交时我会收到错误“无法批量分配受保护的属性”。
现在,如果我补充:帖子attr_accessible,我得到的错误“未知参数后置”
如果我是这个移动到用户控制器,我该如何覆盖默认设计控制器?这甚至很重要吗?
我有attr_accessible – zzzzzzzzzzz
我已经更新了答案的所有属性。尝试这个并让我知道,如果它的工作与否。 –
我将 <%resource.posts.build%>添加到我的视图中, – zzzzzzzzzzz