Я использую драгоценный камень под названием acts_as_commentableДобавить проверку в acts_as_commentable жемчужины
я добавил пользовательский столбец в миграции, как: recipient_id
Тогда я вызвал Комментарий модели согласно документации:
rails g comment
Теперь в моем Comment.rb, у меня есть следующая строка:
validate :comment, :recipient_id, :presence => true
Примечание: 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
?
Спасибо, я предполагаю, что я задал тупой вопрос когда-либо. Но, я думаю, в этом случае я не могу добавить никаких валидаций, потому что, как предполагает документ, он создает пустой объект комментария и затем присваивает значения, которые будут ограничены проверкой. Не знаете, как это подтвердить? – Abhi
Проверки выполняются до сохранения записи. Неважно, являетесь ли вы массовым назначением значений или создаете пустой объект, а затем присваиваете значения. Он должен работать в вашем случае. –
Создание пустого объекта здесь невозможно, так как проверка не позволит 'recipient_id' быть нуль в первую очередь – Abhi