Ruby on rails 如何在动态链接中使用HAML?

Ruby on rails 如何在动态链接中使用HAML?,ruby-on-rails,ruby,ruby-on-rails-3,haml,Ruby On Rails,Ruby,Ruby On Rails 3,Haml,我正在尝试使用HAML创建一个链接,看起来像这样 =link_to("Last updated on<%=@last_data.date_from.month %>",'/member/abc/def?month={Time.now.month}&range=xyz&year={Time.now.year}') =link_to(“上次更新日期“,”/member/abc/def?month={Time.now.month}&range=xyz&year={Time

我正在尝试使用HAML创建一个链接,看起来像这样

=link_to("Last updated on<%=@last_data.date_from.month %>",'/member/abc/def?month={Time.now.month}&range=xyz&year={Time.now.year}')
=link_to(“上次更新日期“,”/member/abc/def?month={Time.now.month}&range=xyz&year={Time.now.year}”)
它不是接受Ruby代码,而是将其显示为字符串

最近更新日期

在URL中,它也没有使用函数
Time.now.month
Time.now.year


如何在URL和字符串中传递Ruby代码?

您可能应该使用以下内容:

= link_to("Last updated on #{@last_data.date_from.month}", "/member/abc/def?month=#{Time.now.month}&range=xyz&year=#{Time.now.year}")
= link_to("/member/abc/def?month=#{Time.now.month}&range=xyz&year=#{Time.now.year}") do
  Last updated on #{@last_data.date_from.month}
请注意,在第二个字符串中,有必要将
更改为
。此外,如果链接文本变长,您可以使用类似以下内容:

= link_to("Last updated on #{@last_data.date_from.month}", "/member/abc/def?month=#{Time.now.month}&range=xyz&year=#{Time.now.year}")
= link_to("/member/abc/def?month=#{Time.now.month}&range=xyz&year=#{Time.now.year}") do
  Last updated on #{@last_data.date_from.month}

HAML中
=
之后的所有内容都是Ruby表达式。Ruby不像HAML那样插值字符串,它有自己的插值方式

在Ruby中,当您希望在另一个字符串中包含某个变量的字符串值时,您可以这样做

"Some string #{Time.now}"
因此,它应该是:

= link_to "Last updated on #{@last_data.date_from.month}", "/member/abc/def?month=#{Time.now.month}&range=xyz&year=#{Time.now.year}"

语法简单的简单示例:

 link_to "Profile #{rubycode}", "profile_path(@profile)/#{ruby_code}", class: "active"

嘿,谢谢,第一部分正在工作,但在URL中我仍然得到时间。now.year和Time.now.monthd你是否要改变环境?我的意思是“->”你应该:)。如果在“”中有一个字符串,则不会使用任何ruby表达式对其进行插值。Url应如下所示:是吗?,'/member/abc/def?month={Time.now.month}&range=xyz&year={Time.now.year}'