在acts_as_commentable gem中添加验证

时间:2015-06-13 09:54:53

标签: ruby-on-rails ruby acts-as-commentable

我正在使用名为acts_as_commentable

的宝石

我在迁移中添加了一个自定义列,如:recipient_id

然后我根据文档生成了评论模型:

rails g comment

现在,在我的 Comment.rb 中,我有以下几行:

validate :comment, :recipient_id, :presence => true

注意:{gem}本身已添加comment

在遵循文档之后,当我故意点击以下内容时:

commentable = Post.create(:title => ......)
comment = commentable.comments.create
comment.comment = "Some comment"
comment.recipient_id = nil
comment.save!

评论对象似乎是:

<Comment id: 1, comment: "Some comment", commentable_id: 1, commentable_type: "Post", recipient_id: nil, created_at: "2015-06-13 09:41:23", updated_at: "2015-06-13 09:41:23">

为什么它没有验证recipient_id的存在?

1 个答案:

答案 0 :(得分:1)

您正在呼叫validate而不是validates。它们都不同。

应该是:

validates :comment, :recipient_id, :presence => true