1

我尝试验证属于另一个模型的属性的存在,但无济于事。

  • 用户模型
  • 轮廓模型

使用这种形式:

= 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|

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

    .clear
    = f.input :gender,
              :label => t(:your_gender),
              :collection => gender,
              :item_wrapper_class => 'inline',
              :as => :radio_buttons


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

如何使用上述表单设置验证性别字段的存在?

4

2 回答 2

1

可能以下代码可以帮助您。

控制器/users_controller.rb

class UsersController < ApplicationController
def new
    @user = User.new
    @user.build_profile
  end
end

模型/用户.rb

class User < ActiveRecord::Base
  has_one :profile, dependent: :destroy
  accepts_nested_attributes_for :profile, :allow_destroy => true
end

模型/profile.rb

class Profile < ActiveRecord::Base
   validates_presence_of :gender
end

可能您需要从视图中删除以下行。

- resource.build_profile

这是您认为有帮助的链接

http://railscasts.com/episodes/196-nested-model-form-part-1

于 2012-06-15T13:48:41.877 回答
-1

尽管上面是正确的答案并且我已经实现了它,但性别字段似乎仍然没有得到验证。所以有点还是在同一个问题上。是否可以重新打开问题?

于 2012-06-17T10:48:57.263 回答