如何在HAML中将三元运算符用于复选框?

时间:2018-12-28 08:41:47

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

我对如何对三元运算符使用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.

1 个答案:

答案 0 :(得分:0)

ngOnInit() { // using new DemoService(); }

返回专门用于访问指定属性的复选框标签,输入标签上的其他选项可以作为带有选项的哈希值传递。选中的值默认为1,而默认的未选中的值设置为0,这对于布尔值很方便。

以您的情况

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

请参阅rails docs链接here