我目前正在使用一个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都很陌生,所以任何帮助都会受到赞赏。
答案 0 :(得分:1)
Haml
没什么。它是一个Rails
帮助器,它来自some_awesome_path
和:symbol
的数组variables
。
在内部,Rails
会将[:edit, :merchants, category, subcategory]
转换为对merchants_category_subcategory_path
的调用。期望路径的大多数(如果不是全部)Rails
方法也会采用资源的对象表示形式,例如respond_with
,link_to
,render
,redirect_to
,form_for
等。
一些例子:
这个数组:
[:new, @object, :post]
转换为:
new_businesses_post_path()
和new_businesses_post_url()
答案 1 :(得分:0)
在Rails中,我们有两种方法来构建pathes
\n
种方法另外一些方法(*_path
,form_for
)不需要调用link_to
并且能够直接获取数组。