0

假设我有这个模型:

class Post < ApplicationRecord
  enum post_type: { post: 0, page: 1 }

  belongs_to :user
end

默认情况下,rails 5 将使belongs_to :user关联成为必需。如果您通过optional: true,则此关联是可选的。但我想要的是关联只有在需要时才是belongs_to :user可选的。post_typepagepost

我怎么能在线上做呢belongs_to :user

此刻我正在这样做:

class Post < ApplicationRecord
  enum post_type: { post: 0, page: 1 }

   belongs_to :user, optional: true
   validates :user_id, presence: { scope: post? } 
end

但这会给我一个错误,例如:

NoMethodError:未定义的方法“发布?” 为了 #

这是正确的方法吗?还是有另一种方法?

4

1 回答 1

1

user可以使用以下选项验证存在if

validates :user, presence: true, if: :post?
于 2017-07-31T22:45:39.107 回答