2016-04-22 3 views
1

Profileがなくても私のStaffオブジェクトを保存できないようにしたいと思います。アソシエーションが設定されていない限り、オブジェクトの保存を禁止するにはどうすればよいですか?

これを達成するために設定できる検証はありますか?

Staff.rb:

class Staff < ActiveRecord::Base 
    has_one :profile 
end 

Profile.rb:

class Profile < ActiveRecord::Base 
    belongs_to :staff 
end 
+0

http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#method-i-validates_associatedをお探しですか? – eugen

+1

Validate_associatedは存在を強制しません。 – donkey

答えて

4

使用validations(それはこの協会で動作します):

class Staff < ActiveRecord::Base 
    has_one :profile 

    validates :profile, presence: true 
end 

それとも:

validates_presence_of :profile 
+0

もしそれが 'has_many'なら別のやり方でしなければなりませんか?一例を挙げてください。 – donkey

+0

@oasisweng、検証は回答と同じです(少なくとも1つの属性が存在することを意味します) – Ilya

+0

ありがとう、ありがとう! – donkey

関連する問題