0

由于一些问题,我一直在使用一个在许多页面中使用模型的系统,其模型内容的验证因控制器步骤而异。

例如,当@step = 1 时,模型应该验证 validates_precense_of :name,但你只验证 validates_precense_of :age 直到 @step =2

但是,由于 rails 模型无法读取会话或全局变量,我该如何应用呢?

4

1 回答 1

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
于 2013-07-24T19:05:08.250 回答