【问题标题】:Checkboxes in rails returning no value? How to get Checkboxes working with Railsrails中的复选框没有返回值?如何让复选框与 Rails 一起使用
【发布时间】:2012-06-26 18:54:29
【问题描述】:

我试图从我的复选框中获取值,但是每当我使用 params[:chosen] 时,它似乎总是返回 nil。我错过了什么? params 是正确的方法吗?

这是我的观点:

<td><%= check_box_tag "chosen[#{i}]",i,true,:name => "chosen[]" %></td>

这确实会产生复选框,但我似乎永远无法从中获得价值。我需要在控制器中放一些东西吗?

谢谢

【问题讨论】:

  • 您确定这在您提交的表格中吗?你在检查盒子吗?复选框的值不会自动更新。
  • 如何更新复选框的值?我有一个更新按钮,但我怎样才能做到这一点,当它被点击时,只有选中的框会出现。还有你所说的“在你提交的表格内”是什么意思

标签: ruby-on-rails ruby checkbox null


【解决方案1】:

我认为您不需要 :name => "chosen[]"。第一个参数已用作名称。此外,Rails 指南建议始终使用带有 check_box_tag 的 label_tag

<td>
<%= label_tag :my_attribute, "Attribute Label" %>
<%= check_box_tag :my_attribute, my_model.my_attribute %>
</td>

然后控制器可以检查 params[:my_attribute]

【讨论】:

  • 所以控制器可以检查params[:chosen]?我如何获得视图中的值?我应该在控制器中为复选框添加一些东西吗?
  • 另外,我取出 :name => "chosen[]" 部分并放入 label_tag,但值仍然为零
  • 这可以解释你的问题。阅读文档中关于 ActionView::Helpers::FormHelper#check_box 的部分,地址为 api.rubyonrails.org,标题为 Gotcha。
【解决方案2】:

&lt;%= f.check_box :hobby, {:multiple =&gt; "true"}, "hockeys", nil %&gt;Hockey

&lt;%= f.check_box :hobby, {:multiple =&gt; "true"}, "cricket", nil %&gt;cricket

这对你很有帮助。

【讨论】:

    猜你喜欢
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    相关资源
    最近更新 更多