【问题标题】:Ruby on Rails MultiSelect box, first value is coming blankRuby on Rails MultiSelect 框,第一个值变为空白
【发布时间】:2013-09-01 19:17:42
【问题描述】:

我的文件中有一个多选框。

<%= c.select(:city, [['Indore', 'Indore'],
                                  ['Delhi', 'Delhi'],
                                  ['Kolkata', 'Kolkata'],
                                  ['Hydrabad', 'Hydrabad'],
                                  ['Jabalput', 'Jabalput']
                                 ],{ },
                                   { :multiple => true }
                                 ) %>

当我选择“Hydrabad”和“Jabalpur”城市并提交表单时,params 就像

(rdb:3359) p params
{"utf8"=>"✓", "authenticity_token"=>"SsuXi8K205lHGsKJgkqGpps09gCbehJoO/R8vXGWx+g=", "city"=>{"city"=>["", "Hydrabad", "Jabalput"
]}, "commit"=>"Save City", "controller"=>"posts", "action"=>"addCity"}

所以在城市 "city"=>{"city"=>["", "Hydrabad", "Jabalput" ]}

,第一个值是空白的,即在“Hydrabad”之前

请清除此行为?我不希望那个空白值作为第一个位置。

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 multi-select


【解决方案1】:

问题解决了,其实我用过

city.delete_if{|x| x.empty?

执行上述代码后,城市数组即将到来

{"city"=>["Hydrabad", "Jabalput" ]}

如果有其他更好的解决方案,请告诉我?

【讨论】:

    【解决方案2】:

    我认为以下链接可能会对您有所帮助。您希望在提交表单时从列表中删除第一个元素(不必要的额外元素)。

    Ruby: What is the easiest way to remove the first element from an array?

    您想更具体地使用shift 函数。

    【讨论】:

      猜你喜欢
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 2015-08-23
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      • 2016-06-04
      • 1970-01-01
      相关资源
      最近更新 更多