2012-04-15 66 views
1

爲簡單的問題道歉。如何在創建用戶資源的同時使用默認參數創建帳戶資源?

我有嵌套資源

resources :users do 
    resources :accounts 
end 

,我想有一個帳戶爲新用戶在後臺創建是創建用戶時。

我試圖

UserController的

def create 
    @user = User.new(params[:user]) 
    @account = Account.new(params[:account]) 
end 

的form_for用戶

<%= form_for([@user, @account]) do |f| %> 
. . . 
<%= f.submit %> 

但我得到這個錯誤

No route matches {:action=>"new", :controller=>"accounts"} 

我也想通過在帳戶中的默認數據。 「例如balance_in_cents => 0等」

感謝您的任何幫助,你們都可以提供。

回答

0

如果您的用戶has_many帳戶,在您的控制器的創建方法中,您應該有@account = @user.accounts.build。這將爲該用戶建立一個帳戶。

railscast是非常有用的嵌套形式和鋼軌指南協會是here

+0

把你的解決方案我得到了:_沒有關聯的名稱'用戶'。是否已定義?_ – ajbraus 2012-04-17 02:50:49

+0

加** @ account = @ user.accounts.create ** 我現在得到的錯誤是在調用create account之前必須保存父(@user)._ – ajbraus 2012-04-17 02:51:15

+0

In你的用戶模型,你需要has_many帳戶 在你的帳戶模型,你需要有belongs_to用戶 – Edward 2012-04-17 08:15:25

0

您的form_for沒有生成正確的路線。它經常對HTTP方法感到困惑。你需要的是

<%= form_for([@user, @account], :url => users_path, :method => :post) do |form| %> 
相關問題