【问题标题】:wicked wizard force to render concrete step邪恶的巫师力量呈现具体步骤
【发布时间】:2023-03-18 10:45:01
【问题描述】:

在 Rails 应用程序中,我使用 wicked gem 创建向导(https://github.com/schneems/wicked/)

我想保护我的向导并在检查后只呈现具体步骤。

实际上 render_wizard 方法只能接受实例:

render_wizard @product

是否有可能以某种方式呈现显示操作中仅允许的步骤? 我需要类似的东西:

if params[:id] == @my_request_model.current_state
  render_wizard
else
  render_wizard @my_request_model.current_state

在此处重定向不是一个好主意,因为更新操作已经进行了重定向

【问题讨论】:

    标签: ruby-on-rails wicked-gem


    【解决方案1】:

    嗯,您是否要为每个向导步骤向表单添加验证?如果是这样,您可以执行以下操作:

    在你的模型中

    validate :foo if step_1
    validate :bar if step_2
    
    def step_1
      form_progress == 1
    end
    
    def step_2
      form_progress == 2
    end
    

    添加迁移以将 form_progress 列添加到您的模型。

    在每个步骤表单上为form_progress 添加一个hidden_field 并将值设置为该步骤的编号。

    f.hidden_field :form_progress, value: 1
    

    这样,用户只有通过验证才能进入下一步。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-25
      • 2013-06-07
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      相关资源
      最近更新 更多