在HAML中使用ruby变量作为类名

时间:2011-09-01 03:14:45

标签: ruby-on-rails haml

我有一段代码,我试图在HAML中使用变量作为类名。这是:

      - data_table(@installation_requests, nil, {:placeholder => ''}) do |installation_request, css_class|
          %tr{:class => css_class}

我看不出它有什么问题,RubyMine IDE也没有选择错误,它认为它是合法使用变量。我收到以下错误:

odd number of arguments for Hash

有人能指出我上面的代码有什么问题吗?

2 个答案:

答案 0 :(得分:7)

如果你尝试怎么办?

- data_table(@installation_requests, nil, {:placeholder => ''}) do |installation_request, css_class|
  %tr{:class => "#{css_class}"}

或者如果您将视图保存为view.html.haml:

- data_table(@installation_requests, nil, {:placeholder => ''}) do |installation_request, css_class|
  <tr class="#{css_class}">
  ....stuff....
  </tr>

答案 1 :(得分:0)

Hash实际上可以巧妙地将传递给它的数组传递给一系列键和值。

例如:

Hash["a", "apple", "b", "boy"]       #=> {"a"=>"apple", "b"=>"boy"}

如果你将奇数个参数传递给键/值对......

Hash["a", "apple", "b", "boy", "c"]  #=> odd number of arguments for Hash

所以,我很确定这会发生在data_table方法中的某个地方。所以,请检查一个数组是否正在函数调用序列中的某个地方插入Hash!