我正在尝试使用Basecamp的local-time
gem。在自述文件之后,我添加了
//= require local-time
到我的应用程序/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中保持不变。
事实上,在我的浏览器收到的编译后的application.js中,"local"一词出现了0次。
gem可能有问题,但现在我假设我做错了什么,我的Ruby代码似乎可以很好地找到和使用gem,但由于某种原因,JS部分从来没有运行过。
我哪里做错了?
编辑:我使用的是Rails版本www.example.com、Ruby版本2.6.5p114和本地时间版本2.1.0。6.0.3.4, Ruby version 2.6.5p114, and local-time version 2.1.0.
2条答案
按热度按时间abithluo1#
Merovex的回答是一个很好的临时解决方案,但根据paulanunda对GitHub问题的评论,还有一个简单得多的方法:
并且,不要弄乱manifest.js文件,只需将以下内容放入application.js文件即可:
1hdlvixo2#
我遇到了同样的问题,这似乎在Rails 6之前都是有效的。
在Rails 6中,JavaScript资产不再包含在app/assets/目录中,而是被移到了一个单独的目录app/javascript中,由Webpacker处理。这很好,但是当我想添加一些自己的自定义javascript时,没有任何明确的文档来描述应该如何操作。
https://dev.to/morinoko/adding-custom-javascript-in-rails-6-1ke6
在
/app/javascript
文件夹中,我创建了一个子文件夹/app/javascript/helpers
,在该文件夹中,我直接从GH repo放置了local-time.js
,然后,我向/app/javascript/packs/application.js
添加了以下代码就在我写这篇文章的时候,我在五分钟前做了这件事,在我看来
读取