rails - 验证belongs_to关系中的模型 - 模型与model_id的存在

时间:2014-12-29 14:24:17

标签: validation ruby-on-rails-4 associations

我现在已经读了几个小时,试图理解正确的方法。

我有User模型和Origin模型。 他们之间的关系是:

class User < ActiveRecord::Base
has_one :origin, dependent: :destroy  

class Origin < ActiveRecord::Base
belongs_to :user

我正在设置测试作为rails最佳实践建议,并且当我想要验证Origin与用户的关联时,我遇到了问题。我不想使用validates_associated因为我不想在创建/操作其Origin时检查用户有效性。我所要做的就是确保Origin与现有(在DB中)用户正确关联。

我希望这些测试通过:

test "user should be present" do
    assert @origin.user
end

test "user id should be present" do
    assert @origin.user_id
end

test "nil user id is invalid" do
    @origin.user_id = nil
    assert_not @origin.valid?
end

我认为rails已经有了这个公共关系的验证器,检查用户是否存在且user_id属于该用户。

我尝试了几种组合  validates :user, presence: truevalidates :user_id, presence: true 但是没有人能给我我想要的东西。 我是否必须编写自定义验证方法来实现此目的?

0 个答案:

没有答案