【问题标题】:How do I use HAML in a dynamic link?如何在动态链接中使用 HAML?
【发布时间】:2012-12-27 10:17:21
【问题描述】:

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

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

它没有采用 Ruby 代码,而是将其显示为字符串

最后更新日期

在 URL 中也没有使用 Time.now.monthTime.now.year 函数。

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

【问题讨论】:

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


    【解决方案1】:

    你可能应该使用这样的东西:

    = 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}
    

    【讨论】:

    • 嘿谢谢第一部分正在工作,但在 URL 中我仍然得到 Time.now.year 和 Time.now.month
    • 你改变了周围的环境吗?我的意思是'->“
    • 你应该:)。如果您在 ' ' 中有一个字符串,它不会插入任何 ruby​​ 表达式。
    • Url 应该是这样的吧? ,'/member/abc/def?month=#{Time.now.month}&range=xyz&year=#{Time.now.year}'
    【解决方案2】:

    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}"
    

    【讨论】:

      【解决方案3】:

      一个语法简单的简单例子:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-15
        • 2011-01-14
        • 2011-08-15
        • 2018-03-01
        • 1970-01-01
        • 2010-10-12
        • 1970-01-01
        相关资源
        最近更新 更多