我有一段代码,我试图在HAML中使用变量作为类名。这是:
- data_table(@installation_requests, nil, {:placeholder => ''}) do |installation_request, css_class|
%tr{:class => css_class}
我看不出它有什么问题,RubyMine IDE也没有选择错误,它认为它是合法使用变量。我收到以下错误:
odd number of arguments for Hash
有人能指出我上面的代码有什么问题吗?
答案 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!