【问题标题】:How to use ternary operator for checkbox in haml?如何在haml中将三元运算符用于复选框?
【发布时间】:2018-12-28 17:53:36
【问题描述】:

我对如何使用三元运算符的haml语法来检查复选框是否被选中感到困惑。我有一个 color_id 列,它根据选中的复选框存储值。以下是我的代码:

  .dress_color
    .form-group
    .checkbox.checkbox-primary.color_id
     = f.check_box :color_id, {}
     %label= t('.dark color')

    - if f.object.long_dress_selected?
          ...............
    - else
      = f.check_box, checked: true ? ('color_id: black') : ('color_id: white')

我想在 if-else 条件的 else 部分检查“dark_color”复选框是否被选中。也就是说,如果选中该复选框,则 color_id 应设置为“黑色”,否则应设置为“白色”。 但是上面的代码显示错误为:

SyntaxError -html.haml:19: syntax error, unexpected tLABEL, expecting '='
_false(( f.check_box, checked: true ? ('color_id
                              ^:

如何使用三元运算符检查复选框是否被选中?

提前致谢。

编辑:我尝试了语法

f.check_box(color_id:, {}, checked_value ="black", unchecked_value = "white")

但它给出了错误:

syntax error, unexpected ','
x(color_id:, {}, checked_value = "black", unch
           ^
file1.html.haml:40: syntax error, unexpected ')', expecting tSTRING_DEND
));}\n", 0, false);end;_hamlout.

【问题讨论】:

  • 与haml无关。它是关于纯 Ruby 的。
  • 如果我在这里遗漏了一些明显的东西,我很抱歉,但我尝试了我所知道的几乎所有东西,但它不起作用。任何帮助将不胜感激。

标签: ruby-on-rails checkbox ternary-operator


【解决方案1】:

check_box(method, options = {}, checked_value = "1", unchecked_value = "0")

返回为访问指定属性量身定制的复选框标签,输入标签上的附加选项可以作为带有选项的哈希传递。 checked_value 默认为 1,而 unchecked_value 默认设置为 0,方便布尔值。

你的情况

f.check_box(color_id:, {}, checked_value ="black", uchhecked_value = "white")

参考 Rails 文档链接 here

【讨论】:

  • 嘿,我尝试了语法,但它给出了错误。错误已在问题中编辑
  • `你能试试 f.check_box("color_id", {}, checked_value ="black", uchhecked_value = "white")' color_id 将是对象中的属性
  • 我试过 f.check_box(:color_id, {}, checked_value = "black", unchecked_value = "white")。但它仍然采用 unchecked_value。我想要的是,如果选中该复选框,则应存储特定值,否则如果未选中,则应存储不同的值
  • 你能评论复选框渲染的html吗
  • 它没有呈现新页面或任何东西。但是值需要存储在数据库中
猜你喜欢
  • 1970-01-01
  • 2022-01-04
  • 2021-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-04
  • 2012-09-02
  • 2015-09-27
相关资源
最近更新 更多