2012-05-17 2 views
0

У меня есть модель Subscription, вложенная в модель User.parent Форма вложенных рельсов

Я пытаюсь создать форму для добавления новых подписок под /subscriptions/new

полей, появляется в этой форме сохраняются в родительской User модели.

В моей new действий я просто

@subscription = Subscription.new 

Вопрос в том, как добавить поля этого родителя User внутри подписки нового form_for? Форма подписки каким-то образом является ее вложенной родительской.

+0

ли вам хотите, чтобы пользователи также редактировали пользователя? –

+0

Нет, на самом деле они также не изменяют подписку. – Martin

+0

Хорошо. Я не понимаю, почему вы говорите о «родительском», а подписка даже не создана. Вы можете объяснить, пожалуйста? –

ответ

1

Было бы очень полезно, если бы вы включили код из своих моделей User и Subscription в свой ответ, чтобы мы могли видеть отношения. На основании ваших комментариев, это звучит, как вы делаете следующее:

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

Смежные вопросы