2012-05-17 188 views
0

我有一個Subscription模型嵌套到User模型。父窗體嵌套導軌

我試圖創建一個表單到下/subscriptions/new

,本表中出現被保存在父User模型中的字段添加新的訂閱。

在我new動作我只是有

@subscription = Subscription.new 

的問題是如何添加訂閱新的form_for這裏面父User的領域?訂閱表單不知何故是它的嵌套父母。

+0

你還希望用戶編輯用戶? –

+0

不,實際上他們也不會編輯訂閱。 – Martin

+0

好的。我不明白你爲什麼談論「父母」,而訂閱甚至沒有創建。你能解釋一下嗎? –

回答

1

如果將用戶和訂閱模型中的代碼包含到答案中,以便我們可以查看關係,這將非常有幫助。根據您的意見,這聽起來像你正在做以下幾點:

class User < ActiveRecord::Base 
    has_many :subscriptions 
    accepts_nested_attributes_for :subscription 
end 

class Subscription < ActiveRecord::Base 
    belongs_to :user 
end 

這聽起來像你想捕捉用戶和訂閱的形式相同的數據。要做到這一點,你將不得不窩形式,使用fields_for嵌套的表格(注意上面的accepts_nested_attributes_for

<%= form_for @user do |user_form|%> 
    <%= user_form.text_field :phone %> 
    <%= user_form.fields_for :subscription @user.subscription.new do |subscription_form|%> 
    <%= subscription_form.text_field :name %> 
    <% end %> 
<% end %> 

然後,在你的控制你的創造方法,你可以簡單地調用:

@user = User.create(params[:user]) 

此代碼沒有經過測試,並且我做了很多假設你的設置,但希望這將足以讓你開始瞭解更多信息,該文檔上fields_for在這裏:http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-fields_for