如何将哈希对象传递给HAML标记

Adi*_*ena 8 ruby haml

请考虑这个例子:

- user_links_params = _user_link_params(current_user)

%a{ :'data-msgstore-path' => user_links_params[:'data-msgstore-path'],
  :'data-user_id' => user_links_params[:'data-user_id'],
  :class => user_links_params[:class],
}
  / too many html tags and stuff to fit in a simple link_to
Run Code Online (Sandbox Code Playgroud)

我很乐意将所有这些都放在一个简单的语句中,如下所示:

%a[_user_link_params(current_user)]
  / too many html tags and stuff to fit in a simple link_to
Run Code Online (Sandbox Code Playgroud)

Mik*_*Mik 11

是的,这是可能的,你很亲密:

%a{_user_link_params(current_user)}
Run Code Online (Sandbox Code Playgroud)

来自HAML参考:

例如,如果您定义了

def hash1
  {:bread => 'white', :filling => 'peanut butter and jelly'}
end

def hash2
  {:bread => 'whole wheat'}
end
Run Code Online (Sandbox Code Playgroud)

然后%sandwich{hash1, hash2, :delicious => true}/将编译为:

<sandwich bread='whole wheat' delicious='true' filling='peanut butter and jelly' />
Run Code Online (Sandbox Code Playgroud)