rails多步形式

Tho*_*mas 3 forms ruby-on-rails wizard ruby-on-rails-3 ruby-on-rails-3.1

我想使用editupdate动作制作带有rails的多步骤表单.所以我希望它像step 1表格一样,用户填写他的姓名,地址和电话号码.然后用户点击save and continue,然后他填写他的送货地址,然后点击save and continue并填写他的帐单地址.我看到了ryan bates版本,但它不是我想要的东西.我希望在第一步之后保存订单,所以如果用户没有完成表格,我可以打电话给他们,问他们出了什么问题.任何人都可以参考我的教程或给我一个如何使用editupdate方法制作订单的例子?

小智 6

通常,这意味着您需要在模型验证上添加条件.您的验证的某些子集应适用于每个表单页面:

class User
  validates_presence_of :first_name
  validates_presence_of :last_name
  validates_presence_of :street,      :if => :on_page_two?
  validates_presence_of :city,        :if => :on_page_two?
  validates_presence_of :postal_code, :if => :on_page_two?
  validates_presence_of :state,       :if => :on_page_two?
  validates_presence_of :country,     :if => :on_page_two?
  validates_acceptance_of :terms_and_conditions, :if => :on_page_three?

  def on_page_two?
    # whatever you need to determine the page number
  end

  def on_page_three?
    # whatever you need to determine the page number
  end
end
Run Code Online (Sandbox Code Playgroud)

它不漂亮,但我强烈推荐这样的模式.任何更复杂的事情,当你的注册流程发生变化时你需要重写它.