15

我一直在寻找如何使用 向助手添加id选择器,这可能吗?link_tohaml

  a .haml - %a#booked{:href => "index.haml"} Link 1    

  b .html.erb - booking.html.erb - <%= link_to "Link 1", booking_path, :id => "booked" %>

  c .haml.erb - booking.haml.erb - ...??

哪个相当于haml中的b?

4

2 回答 2

30

link_to在 haml 中的工作方式与在 erb 中的工作方式完全相同。所以这会做你想要的:

= link_to "Link 1", booking_path, :id => "booked"
#=> <a id="booked" href="/bookings">Link 1</a>

您还可以通过这种方式分配类属性:

= link_to "Link 1", booking_path, :id => "booked", :class => "some_class"
#=> <a id="booked" class="some_class" href="/bookings">Link 1</a>

有关如何在 haml 中插入 ruby​​ 代码的更多信息:插入 ruby

而且,毫无疑问,将 ids 和 classes 传递给,这里是文档link_to中的一个示例:

link_to "Articles", articles_path, :id => "news", :class => "article"
#=> <a href="/articles" class="article" id="news">Articles</a>
于 2013-02-02T02:44:54.050 回答
4

要使用 link_to 在 haml 中添加 id 选择器,您必须指定两个哈希值。

e.g = link_to "Link 1", {booking_path, extra arg...}, {:id => 'booked'}

一个重要的 Ruby 习语是诗歌模式:当解析明确时省略括号和花括号的能力。最常见的是,Ruby 程序员可能会在方法调用的参数周围省略括号,并在方法调用的最后一个参数是散列时省略花括号。因此,以下两个方法调用是等价的,假设方法link_to采用一个字符串参数和一个哈希参数:

如果没有花括号,则无法判断此调用是尝试传递具有两个键的散列还是每个键的两个散列。因此,诗歌模式只能在有单个哈希参数并且是最后一个参数时使用。

帕特森,大卫;福克斯,阿曼多 (2012-08-24)。工程持久软件:使用 SaaS 和云计算的敏捷方法,Beta 版(Kindle Locations 1973-1975)。草莓峡谷有限责任公司。Kindle版。

于 2013-02-02T03:15:49.203 回答