我的表單中有一些字段不是模型的一部分,我知道如何驗證控制器中的這些字段,但我想知道是否可以驗證此在模型中?ROR:驗證模型文件中的非模型字段
如果有可能,我將如何驗證下一個? 例如
text_field(nil, :non_model_field)
我的表單中有一些字段不是模型的一部分,我知道如何驗證控制器中的這些字段,但我想知道是否可以驗證此在模型中?ROR:驗證模型文件中的非模型字段
如果有可能,我將如何驗證下一個? 例如
text_field(nil, :non_model_field)
試試這個:
把虛擬屬性的模式。
class MyModel < ActiveRecord::Base
attr_accessor :non_model_field
validates :non_model_field, presence: true # or whatever other validations you want
end
正如@wali Ali
提到的,你需要使用attr_accessor
方法通過創建相關getter
& setter
方法模型,基本上創建非持久性數據
此方法使用一個虛擬屬性創建一系列可用於模型對象的屬性。然後可以通過您的模型驗證這些屬性,即使它們未保存:
#app/models/model.rb
Class Model < ActiveRecord::Base
attr_accessor :test, :attribute #-> creates @model.test & @model.attribute
validates :test, :attribute, presence: true
end
驗證不關心值是否持久。 –