在haml中使用rails helper,传递散列会导致语法错误

时间:2014-11-23 02:51:49

标签: ruby-on-rails syntax-error haml

我的rails app上的haml页面之一出现语法错误:

...users/show.html.haml:6: syntax error, unexpected ':', expecting '}' ...true_false(( nav_big { profile: @user, art: root_url, storie... ... ^

show.html.haml的摘录:

= nav_big { profile: @user,
            art: root_url,
            stories: root_url,
            universes: root_url,
            elements: root_url }

我正在尝试将哈希传递给我的助手并生成导航。

我的导航助手的摘录:

def nav_big(items)
    items.each do |key, value|
      items_html += link_to(glyphenize(key), value, class: value == request.original_url ? "active" : "")
    end
    content_tag(:nav, items_html.html_safe, class: "big")
end

这是我第一次使用haml,我决定通过使用漂亮的帮助程序让我的代码更干,因为我将页面更改为haml

导致此语法错误的原因是什么?

1 个答案:

答案 0 :(得分:1)

我认为你只需要用帮助器中的常规括号替换花括号,试试这个:
    = nav_big( profile: @user, art: root_url, stories: root_url, universes: root_url, elements: root_url )
如果你喜欢花括号,那么你应该使用这种格式
    = nav_big { :profile => @user, :art => root_url, :stories => root_url, :universes => root_url, :elements => root_url }