серьезно застрял на :проверки не запускаются для вложенного ресурса с полями _для

Я серьезно застрял в проблеме, когда у меня есть модель пользователя и профиля. что бы я ни пробовал, проверки не запускаются ни для одного из атрибутов профиля

  • Модель профиля принадлежит Пользователю. Пользователь имеет _один профиль
  • В регистрационной форме с использованием полей _для отображения некоторых полей профиля (пол, город и страна)
  • Что бы я ни пробовал,Я не могу разрешить проверку пола и города(поля _для полей профиля)

Моя форма:

- title t(:title, :scope => :register)
%h1= yield(:title)

  = simple_form_for(resource, :as => resource_name, :html => { :class => 'form-horizontal' }, :validate => true, :url => registration_path(resource_name)) do |f|

    = f.input :username,                  :label  => t(:username)
    = f.input :email,                     :label  => t(:email),
                                          :hint   => t(:hint_email_visible)
    = f.input :password,                  :label  => t(:password), :require => true
    = f.input :password_confirmation,     :label  => t(:password_confirm)


    - resource.build_profile
    = f.fields_for :profile do |f|

      #div

        = f.hidden_field :form, :value => "signup"

       .clear

        = f.input :gender,                :collection => [['Male', 'male'], ['Female', 'female']],
                                          :as => :radio

    = f.input :city,
              :readonly => "readonly",
              :label => t(:city)

   .ruler

    = f.input :country,
              :label => "Your country",
              :collection => [DataCountry.where(:code => 155).first],
              :value => @city,
              :id => "country",
              :name => "country"

   .clear


    = f.button :submit, t(:submit, :scope => :register) + " »"

Моя пользовательская модель имеет это:

  accepts_nested_attributes_for :profile

Моя модель профиля с валидацией похожа на:

  validates_presence_of :gender
  validates_presence_of :city
  validates_presence_of :country

Мои ПАРАМЕТРЫ:

-- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
utf8: ✓
authenticity_token: <mytokenhere>
user: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
  invite_code: ''
  username: username
  email: ''
  password: ''
  password_confirmation: ''
  profile_attributes: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
    form: signup
    gender: male
    dob(3i): '9'
    dob(2i): '7'
    dob(1i): '1942'
    city: 'somevalue'
    country: 'somevalue'
commit: Register »
action: create
controller: registrations

Консоль Rails делает:

User.new


 => #<User id: nil, email: "", encrypted_password: "", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, password_salt: nil, confirmation_token: nil, confirmed_at: nil, confirmation_sent_at: nil, unconfirmed_email: nil, failed_attempts: 0, unlock_token: nil, locked_at: nil, authentication_token: nil, username: nil, is_blocked: nil, is_deleted: nil, role: nil, slug: nil, created_at: nil, updated_at: nil, last_seen: nil, credits: nil, invite_code: nil, is_moderated: nil, locale: nil, status: nil, login_token: nil> 

Профиль.новый

 => #<Profile id: nil, user_id: nil, gender: nil, country: nil, state: nil, city: nil, status: nil, counter_cache: nil> 

-- ОБНОВЛЕНИЕ 19 июля 2012

Я добавил

    - @user.errors.full_messages.each do |message|
  = message
 .clear

В форму, чтобы увидеть, что именно происходит, и это выдает следующий список ошибок:

Email can't be blank
Email can't be blank
Password can't be blank
Password can't be blank
Profile city can't be blank
Profile gender can't be blank
Profile is invalid
Username can't be blank
Password confirmation can't be blank 

Итак, кажется, проверка проверена.... Но стиль ошибок не применяется! И профиль неверный???? Я не уверен, но относится ли это к

8
задан Rubytastic 19 July 2012 в 09:57
поделиться