【问题标题】:How to escape HTML-entity inside Rails helper function?如何在 Rails 辅助函数中转义 HTML 实体?
【发布时间】:2013-09-18 17:02:14
【问题描述】:

在我的 Rails 应用程序中,我有一个这样的辅助函数:

def format_datetime(time)
  datetime = [current_user.date_format, current_user.time_format].join(" — ")
  time.strftime(datetime)
end

问题在于它将 m-dash 作为 HTML 实体返回:

# => 14.12.2012 — 10:53AM

如何解决这个问题?

我在某些地方尝试了.html_safe,但无济于事。

有人可以帮忙吗?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 escaping html-escape-characters


    【解决方案1】:
    def format_datetime(time)
      datetime = [current_user.date_format, current_user.time_format].join(" — ")
      time.strftime(datetime).html_safe
    end
    

    为我工作

    【讨论】:

    • 好的,我通过简单地使用逗号而不是 m-dash 解决了这个问题。不是真正的解决方案,但它暂时有效。感谢您抽出宝贵时间帮助我。
    • 如果您在视图中使用另一个字符串时要引入另一个字符串 - 例如“时间:#{ format_datetime(Time.now) }”,那么您还需要 html_safe 该字符串。
    【解决方案2】:

    试试这个:

    def format_datetime(time)
      datetime = [current_user.date_format, current_user.time_format].join(" — ")
      time.strftime(datetime).gsub('—', '-')
    end
    

    【讨论】:

    • 我修好了,现在试试。
    • 不工作。 mdash 在这里被替换为普通的dash,这不是我想要的。不过感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2016-11-25
    • 2018-12-13
    • 2015-04-02
    • 2021-06-04
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多