由于一些问题,我一直在使用一个在许多页面中使用模型的系统,其模型内容的验证因控制器步骤而异。
例如,当@step = 1 时,模型应该验证 validates_precense_of :name,但你只验证 validates_precense_of :age 直到 @step =2
但是,由于 rails 模型无法读取会话或全局变量,我该如何应用呢?
由于一些问题,我一直在使用一个在许多页面中使用模型的系统,其模型内容的验证因控制器步骤而异。
例如,当@step = 1 时,模型应该验证 validates_precense_of :name,但你只验证 validates_precense_of :age 直到 @step =2
但是,由于 rails 模型无法读取会话或全局变量,我该如何应用呢?
我相信戴夫所说的是
class Model
attr_accessor :step
validate_presence_of :name, if: { |m| m.step == 1 }
validate_presence_of :age, if: { |m| m.step == 2 }
end
class Controller
def first_step
@model = Model.new(params[:model].merge(step: 1))
if @model.valid?
....
end
def second_step
@model.update_attributes(params[:model].merge(step: 2))
if @model.valid?
....
end
end