use*_*603 2 validation ruby-on-rails ruby-on-rails-5
我有两个Person型号Address:
class Person < ApplicationRecord
has_one :address
end
Run Code Online (Sandbox Code Playgroud)
class Address < ApplicationRecord
belongs_to :person
end
Run Code Online (Sandbox Code Playgroud)
我如何验证每个点都指向另一个?
我想做类似的事情:
class Person < ApplicationRecord
has_one :address
validates :address, presence: true
end
Run Code Online (Sandbox Code Playgroud)
当然,这不起作用,因为address不是 上的属性Person。
Rails 中确保一条记录与另一条记录有效关联的正确方法是什么?
class Person < ApplicationRecord
has_one :address, required: true
end
Run Code Online (Sandbox Code Playgroud)
class Address < ApplicationRecord
belongs_to :person
end
Run Code Online (Sandbox Code Playgroud)
请参阅https://apidock.com/rails/v5.2.3/ActiveRecord/Associations/ClassMethods/has_onerequired的选项部分中的选项
belongs_to在 Rails 5 中现在是自动必需的,因此您不需要在其中放置任何不同的内容Address.