由于一些问题,我一直在使用一个在许多页面中使用模型的系统,其中模型内容的验证因控制器步骤而异。
E.g。当@step = 1时,模型应该是validates_precense_of:name,但是你只有validates_precense_of:age,直到@step = 2
但是,由于rails模型无法读取会话或全局变量,我该如何应用?
答案 0 :(得分:0)
我相信戴夫所说的是
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