1

我在 HAML 视图中有以下 Rails 代码:

= form_tag ..... do
  - @someArray.each do |age|
    = age
    = check_box_tag "ages[#{age}]", @keys.has_key? age ? checked : unchecked

我在这里要做的是根据age变量是否在控制器的实例变量中选中或取消选中此复选框@keys。但是,这会引发syntax error, unexpected '\n', expecting tASSOC错误。

任何想法为什么这个 Ruby 代码不评估?它=在 HAML 之后,这正是评估 Ruby 代码所需要的。我错了吗?对不起,我是 Rails 的新手,一开始事情很混乱。

谢谢!

4

2 回答 2

1

确定优先级后@keys.has_key?(age),您必须注意方法中的参数顺序check_box_tag。请参阅文档

check_box_tag(name, value = "1", checked = false, options = {})

所以试试:

= check_box_tag age, age, @keys.has_key?(age) ? true : false
于 2013-01-30T12:43:20.653 回答
1

checked并且unchecked在这里是变量;我想你想写"checked"and "unchecked"

此外,优先级可能存在问题:@a.b? c ? d : e被评估为@a.b?(c ? d : e),而不是(@a.b?(c)) ? d : e您可能希望的那样。

于 2013-01-30T00:34:20.907 回答