Я пытаюсь создать вложенную форму, которая создаст нового пользователя и подпишет его в план.Вложенная форма, не связанная дочерним объектом с родителем
Когда я нажимаю «Записаться» Я получаю следующее сообщение об ошибке:
Validation failed: Plan subscriptions user can't be blank
Я двойное и тройное проверили все ниже и я не уверен, что случилось в этот момент. Любая идея, почему подписка не связана с новой пользовательской записью?
Вот мой код:
User.rb
class User < ActiveRecord::Base
attr_accessible ..., :plan_subscriptions_attributes
has_many :plan_subscriptions, dependent: :destroy
accepts_nested_attributes_for :plan_subscriptions
PlanSubscriptions.rb
class PlanSubscription < ActiveRecord::Base
belongs_to :user
Plan_Subscriptions # новый
def new
@plan = Plan.find(params[:plan_id])
@user = User.new
@user.plan_subscriptions.build
end
Plan_Subscriptions/New.html
<%= form_for @user do |f| %>
<fieldset>
<%= f.text_field :first_name, :label => false, :placeholder => 'First Name', :required => false %>
<%= f.text_field :last_name, :label => false, :placeholder => 'Last Name',
<%= f.fields_for :plan_subscriptions do |builder| %>
<%= builder.hidden_field :plan_id, :value => @plan.id %>
<% end %>
<%= f.submit 'Enroll', :error => false %>
</fieldset>
<% end %>
Извините, что не нужно было скрывать эту линию. Я могу подтвердить, что '@ plan' действителен. Он устанавливается в контроллере на основе параметра url. Я могу подтвердить, что '@ plan.id' получает значение« 2 »(действительный идентификатор). Так что, похоже, это не так. Ошибка заключается в жалобе на пустой идентификатор пользователя. – pejmanjohn