由于一些问题,我一直在使用一个系统,该系统在许多页面中使用了一个模型,其中对其模型内容的验证因控制器步骤而异。
例如,当@step = 1时,模型应为validates_precense_of :name,但您只能在@step =2之前使用validates_precense_of :age
然而,由于rails模型不能读取会话或全局变量,我如何应用它呢?
发布于 2013-07-24 19:05:08
我相信戴夫的意思是
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
https://stackoverflow.com/questions/17835397
复制相似问题