【问题标题】:Rendering different forms inside a form_for method in rails在 rails 的 form_for 方法中渲染不同的表单
【发布时间】:2012-06-24 05:09:37
【问题描述】:

我的 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 成为与表单一起提交的参数之一时,我怎样才能使其工作?

附加信息: 部分都是不同的,但有一些共享字段。参数最终成为所有表单中所有字段的完整列表。

【问题讨论】:

  • 可以提交部分内容吗?

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


【解决方案1】:

我认为你有两个选择:

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

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

祝你好运!

【讨论】:

    猜你喜欢
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    相关资源
    最近更新 更多