在模型只會驗證我想要的東西,像下面如果其他在軌
validates :category, :presence => true if self.post = "this_is_post"
是否有可能還是我必須使用鉤子方法之前保存這個檢查?
在模型只會驗證我想要的東西,像下面如果其他在軌
validates :category, :presence => true if self.post = "this_is_post"
是否有可能還是我必須使用鉤子方法之前保存這個檢查?
這應該工作:
validates :category, :presence => true, :if => ->(a){ a.post == 'this_is_post' }
這裏,不止一個代碼snippest在軌驗證條件:
class Person < ActiveRecord::Base
validates :surname, presence: true, if: "name.nil?"
end
=============== =========
validates :category,
:presence => true,
:if => :valid?
def valid?
self.post == "this_is_post"
end
================
class Person < ActiveRecord::Base
validates :category, presence: true, if: "self.post.eql?('this_is_post')"
end
最後一個不工作,但我看起來像最後一個 – asdfkjasdfjk
你能解釋一下這裏是什麼。在模型中,我使用self.post來訪問任何資源字段。 – asdfkjasdfjk
@ user3128796如果你在這個':if'選項中傳遞了'Proc'對象,那麼它將被傳遞給它的模型對象(在我的例子中用'a'引用)來評估。所以你可以直接調用它'post',就像你使用'regular'對象一樣。 –
@ user3128796還有什麼不清楚的地方嗎? –