了解Haml代码

时间:2015-05-01 11:29:45

标签: ruby-on-rails ruby-on-rails-4 haml

我目前正在使用一个RoR项目,我的团队正在使用Haml作为模板引擎。我很难理解以下代码。

%td
   = link_to 'Edit', [:edit, :merchants, category, subcategory], class: 'btn'
   = link_to 'Delete', [:merchants, category, subcategory], :method => :delete, :data => { :confirm => 'Are you sure?' }, class: 'btn'

转换为

<a class="btn" href="/admin/categories/28/sub_categories/147/edit">Edit</a>
<a class="btn" data-confirm="Are you sure?" data-method="delete" href="/admin/categories/28/sub_categories/147" rel="nofollow">Delete</a>

Haml documentation,我发现[]符号用于对象引用所以我不确定[]符号如何转换为href表示法。我对Ruby On Rails和Haml都很陌生,所以任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

Haml没什么。它是一个Rails帮助器,它来自some_awesome_path:symbol的数组variables

在内部,Rails会将[:edit, :merchants, category, subcategory]转换为对merchants_category_subcategory_path的调用。期望路径的大多数(如果不是全部)Rails方法也会采用资源的对象表示形式,例如respond_withlink_torenderredirect_toform_for等。

一些例子:

这个数组:

[:new, @object, :post]

转换为:

new_businesses_post_path()new_businesses_post_url()

Creating URLs From Objects

答案 1 :(得分:0)

在Rails中,我们有两种方法来构建pathes

另外一些方法(*_pathform_for)不需要调用link_to并且能够直接获取数组。