如何在保持休息的同时为模型创建多个不同的编辑/更新视图? (导轨)

时间:2012-10-08 21:30:33

标签: ruby-on-rails model-view-controller

我有一个模型“Voyage”,需要几种不同类型的表格。

有到达表格,出发表格,登记表格等。

目前,我通过在控制器中创建新操作来实现此功能,例如

    def arrival_form
    ...
    end

    def departure_form
    ...
    end

所有这些基本上都是编辑/更新操作。

我觉得可能有一种更好,更清洁的方法,但我只是无法弄明白。

1 个答案:

答案 0 :(得分:1)

您当然可以通过选择这样的通用视图来呈现您的表单:

def edit
  # logic omitted
  render "#{params[:state]}_form" if Voyage::STATES.include? params[:state]
end

或者,如果您的表单是某种step_by_step向导,则可以在表单生成中使用@ voyage.state。我想你应该已经明白了。 您应该使用Voyage操作更新update个实例。