【发布时间】:2021-03-30 23:08:12
【问题描述】:
我正在尝试使用 Basecamp 的 local-time gem。在自述文件之后,我添加了
//= require local-time
到我的 app/assets/config/manifest.js,现在看起来像这样:
//= link_tree ../images
//= link_directory ../stylesheets .css
//= require local-time
然后我按照规定使用宝石:
<%= local_time(comment.created_at) %>
根据自述文件呈现
<time data-format="%B %e, %Y %l:%M%P"
data-local="time"
datetime="2013-11-27T23:43:22Z">November 27, 2013 11:43pm</time>
自述文件还声称 JavaScript,即客户端,然后会将其转换为:
<time data-format="%B %e, %Y %l:%M%P"
data-local="time"
datetime="2013-11-27T23:43:22Z"
title="November 27, 2013 6:43pm EDT"
data-localized="true">November 27, 2013 6:43pm</time>
但我可以看到这不会发生在我身上。 local_time 生成的标记在 DOM 中保持不变。
其实“local”这个词在我的浏览器接收到的编译好的application.js中出现了0次。
宝石可能有问题,但现在我假设我做错了什么。我的 Ruby 代码似乎可以很好地找到和使用 gem,但由于某种原因,JS 部分永远不会运行。
我做错了什么?
编辑:我使用的是 Rails 版本 6.0.3.4、Ruby 版本 2.6.5p114 和本地时间版本 2.1.0。
【问题讨论】:
-
你的
app/javascript/packs/application.js里有什么? -
require("@rails/ujs").start() require("turbolinks").start() require("@rails/activestorage").start() require("channels")在顶部——加上一些其他不相关的 JS。 -
您可以尝试将您的需求放入 application.js 文件中,然后再试一次吗?
-
我试过了,没有骰子。
标签: javascript ruby-on-rails ruby localtime