我使用設計來驗證用戶,當新用戶註冊時,我也想創建新帳戶,並將此用戶設置爲帳戶的所有者。我決定爲此使用嵌套模型。這是我的設置:Rails3 +設計+ simple_form + nested_model
型號:
class User < ActiveRecord::Base
belongs_to :account
has_one :owned_account, :class=> Account, :foreign_key => :owner_id
accepts_nested_attributes_for :owned_account
end
class Account < ActiveRecord::Base
has_many :users
belongs_to :owner, :class => User, :foreign_key => :owner_id
end
路線:
重寫色器件登記控制器:
class RegistrationsController < Devise::RegistrationsController
def new
super
owned_account = resource.build_owned_account
end
def create
super
end
end
形式:
<%= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :email, :required => true, :autofocus => true %>
<%= f.input :password, :required => true %>
<%= f.input :password_confirmation, :required => true %>
<%= f.simple_fields_for :owned_account do |account| %>
<%= account.input :name, :required => true %>
<% end %>
</div>
<div class="form-actions">
<%= f.button :submit, "Sign up" %>
</div>
<% end %>
當我訪問sign_up路徑時不會引發異常,但不會生成表單的嵌套部分。有幾個類似的問題了,但提供的解決方案似乎並沒有爲我工作...