在rails中的form_for方法内呈现不同的表单

时间:2012-06-21 21:33:18

标签: javascript ruby-on-rails ruby-on-rails-3 partial-views form-for

我的rails应用页面上有一个form_for。我希望用户能够从下拉菜单中选择他们想要输入的交易阶段,并使页面以相应的形式(在相应的部分中)进行响应。下面是form_for的简化版本。我也有javascript在加载页面时隐藏4个部分,然后当从选择菜单中选择一个时,显示部分。

= form_for @activity do |f|
  .field
    = f.label :select_deal_stage
    = f.select(:deal_stage, DEAL_STAGE_ARRAY[], {:selected => nil, :prompt => 'Select Stage'})
  = render "deal_stage_1_partial", :f => f
  = render "deal_stage_2_partial", :f => f
  = render "deal_stage_3_partial", :f => f
  = render "deal_stage_4_partial", :f => f

这里的问题似乎是当我填写并提交表单时,参数是空白的,可能是因为字段在form_for中重复,并且它是从最后字段提交值或以某种方式从字段中提交值实际上并不是那些被填写的。我怎样才能使这个工作,同时从下拉菜单中选择的deal_stage是与表单一起提交的参数之一?

其他信息: 部分都是不同的,但有一些共享字段。 params最终成为所有表格中所有字段的完整列表。

1 个答案:

答案 0 :(得分:0)

我认为你有两个选择:

  1. 以不同方式命名四组重复字段,例如。如果您有item_no字段,请将其命名为item_no_1,item_no_2,item_no_3和item_no_4。然后处理将正确的一个移动到item_no。

  2. 一次只渲染四个视图/部分中的一个。这意味着用户必须在渲染之前选择该选项。

  3. 祝你好运!