我想干嘛 : 要实现显示时间的问题
我怎么做及遇到的问题:
1,想要使用jquery-timeago-rails
这个 gem。
https://github.com/sugarcrm/jquery-timeago-rails
可是这个 gem 好像已经不存在
2,于是有找了这个
https://github.com/rmm5t/jquery-timeago
但是不知道怎样加载到 rails 中使用。
3,参照 ruby-china 的例子,在javascripts
中加入了jquery.timeago.js
同时使用了timeago
函数,运行未报错,但是也没有显示出时间。
重点:寻求大家的建议
@huacnlee 在application.js
.....
//=require jquery.timeago
//=require jquery.timeago.settings
.....
并且这两个文件都在本目录下。 我是在开发环境
如下:
.list-group-item-heading
a href=topic_path(topic)
b = topic.title
.text-muted
= topic.user.username
= timeago(topic.created_at)
.list-group-item-heading
a href=topic_path(topic)
b = topic.title
.text-muted
= topic.user.username
= timeago(topic.created_at.iso8601)
你试一下吧最后一行改掉,它需要特殊格式才能转换
@tiseheaini 如果在最后以后加iso8601
,会报没有这个方法的错误
并且这个格式已经在timeago
这个方法里做了https://github.com/ruby-china/ruby-china/blob/master/app/helpers/application_helper.rb
def timeago(time, options = {})
options[:class]
options[:class] = options[:class].blank? ? "timeago" : [options[:class],"timeago"].join(" ")
content_tag(:abbr, "", options.merge(:title => time.iso8601)) if time
end
@tiseheaini 我就模糊在这,如上所说,我在application.js
中加了require jquery.timeago
与require jquery.timeago.settings
这两个行。你所说的调用我不是很清楚
$(document).ready(function(){
$("abbr.timeago").timeago();
});
我不会写 coffee,你在 application.js 里加上这几行代码就可以了。
@tiseheaini @huacnlee 添了那段 js 后时间现在显示出来了,但有一个问题,翻页
后时间又不在了,只有重载
页面才会又出现,知不知道这是什么原因?
@tiseheaini 问题解决
$(document).ready(function(){
$("abbr.timeago").timeago();
});$(window).bind('page:change', function() {
$("abbr.timeago").timeago();
});
使 document.ready 和 page:change 事件都可以被触发。
不知道还有没有更简单的写法
@shatle 可以将$(document).ready
换成page:change
,可以使用 coffeescipt,
http://ruby-china.org/topics/17977
但有个问题不清楚,当我把application.js
名字改成application.js.coffee
后就要报错ExecJS::ProgramError
报错的是= javascript_include_tag "application", "data-turbolinks-track" => true
这一句。
不知道什么地方还要改改?