如果可以使用验证,为什么会使用reject_if?

时间:2016-05-26 04:05:30

标签: ruby-on-rails ruby validation

你有什么理由可以使用reject_if并做这样的事情吗?

class User < ActiveRecord::Base
  has_many :posts
  accepts_nested_attributes_for :posts, reject_if: proc do |attributes|
    attributes['title'].blank?
  end
end

而不是在Post模型上使用验证?

class Post < ActiveRecord::Base
  belongs_to :user
  validates :title, presence: true
end

1 个答案:

答案 0 :(得分:1)

如果您使用验证,如果存在没有标题的if,则User的创建将失败。

如果您使用Post,即使reject_if中的部分或全部没有标题,User的创建也会成功。只有那些没有标题的帖子才会被保存。