让我说我有这个模型:
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_type
为page
且post
为必需时才是可选的。
我该如何在第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:未定义的方法`post?&#39;对于#
这是正确的方法吗?或者还有另一种方式?
答案 0 :(得分:1)
可以使用user
选项验证if
状态:
validates :user, presence: true, if: :post?