结合
http://marklunds.com/articles/one/311
和手册,完整的一个实现各时区时间转换的一个例子:
首先保证服务器安装tzinfo插件
gem install tzinfo
1、配置环境
ruby 代码
- ActiveRecord::Base.default_timezone = :utc
2、相应的类中
ruby 代码
3、某模型中有一个字段为time_zone,string类型,用来存储用户设置的他所在的时区
ruby 代码
- class User < ActiveRecord::Base
- composed_of :tz, :class_name => 'TZInfo::Timezone',
- :mapping => %w(time_zone name)
- #回调函数对tz进行赋值
- def after_find
self.tz=TZInfo::Timezone.new(self.time_zone)
- end
- end
4、新建用户时,使用下面select
ruby 代码
- <%= time_zone_select 'user', 'timezone_name', TZInfo::Timezone.all.sort,
- :model => TZInfo::Timezone %>
5、新建action中
ruby 代码
- @user.tz=TZInfo::Timezone.new(params[:user][:timezone_name])
6、相应的helper中
ruby 代码
- def format_datetime(datetime)
- return datetime if !datetime.respond_to?(:strftime)
- datetime = @user.tz.utc_to_local(datetime) if @user
- datetime.strftime("%m-%d-%Y %I:%M %p")
- end
7、相应的view中得到本地时间
ruby 代码
- <%= format_datetime(Time.now) %>
8、action中转换时间
ruby 代码
- def new
- @email.schedule_date = @user.tz.utc_to_local(Time.now) # Default schedule date in local time
- end
- def create
- @email.schedule_date = @user.tz.local_to_utc(@email.schedule_date)
- end
分享到:
相关推荐
rails-timezone-js提供了使用ActiveSupport中的在ActiveSupport时区名称之间进行转换的功能。 该库可以在node.js和浏览器中使用。 用法 该库提供两个功能: from(timezone) :从ActiveSupport时区名称转换 to(tz)...
gem 'browser-timezone-rails' 确保您的application.js中包含以下每个条目: //= require js.cookie //= require browser_timezone_rails/set_time_zone 而已! 无需其他配置,因为使用此gem可以完成所有工作,...
安装 添加到您的Gemfile中: gem 'i18n-timezones'用法 时区将自动转换为当前语言环境。 甚至:default都将转换为当前语言环境。 time_zone_select :user , :time_zone , ActiveSupport :: TimeZone . us_
在 Rails 应用中使用 Cucumber-Rails,开发者可以创建一个名为`features`的目录,里面包含这些Gherkin特性文件。每个特性文件描述了一个或多个业务场景,并使用关键字`Given`、`When`、`Then`等来定义步骤。这些步骤...
rails-hackernews-reddit-producthunt-clone, 黑客 news/reddit/social 链接分享网站 用 Rails 构建 Rails 上的 Reddit-Hackernews-ProductHunt克隆演示 这是一个 readme.md的Ruby on Rails 应用程序,模仿了 Hacker...
rails-timeago提供了一个timeago_tag助手来创建可用于插件的时间标签。 安装 将此行添加到您的应用程序的Gemfile : gem 'rails-timeago' , '~> 2.0' 然后执行: $ bundle 或将其自己安装为: $ gem install ...
书中的这部分内容指导读者如何在Rails应用中使用流式传输技术。 最后,书中还介绍了Rails中的表单构建器(Form Builder),渲染器(Renderer)和railties辅助工具(Helpers)。Rails的表单构建器简化了表单创建过程...
在这个压缩包中,`awesome-rails-gem-zh_CN-master`可能是项目源码或文档的主目录。以下是一些可能包含在列表中的关键Rails Gem及其功能简介: 1. **Devise**:这是一个灵活的身份认证解决方案,提供了一套完整的...
通过查看源码,可以学习如何在React组件中使用ActionCable订阅频道,实现实时数据更新。 4. **Rails API模式** 当React作为前端视图层时,Rails通常会采用API模式,专注于提供JSON数据。源码中可能包含了Rails API...
rails-documentation-2-0-2
《Agile Web Development with Rails-Second Edition-Beta》是一本专为Rails开发者设计的书籍,旨在教授敏捷Web开发的方法和技巧。这本书的核心是利用Ruby on Rails框架构建高效、灵活的Web应用。Rails是一个强大的...
`rails-documentation-2-0-2.chm` 文件详细涵盖了这些概念,包含了关于Rails 2.0.2的API参考、教程和指南。通过仔细阅读和实践,开发者能够深入理解Rails的工作原理,并有效地开发出高效、可维护的Web应用。
标题 "rails-documentation-1-2-1.zip" 暗示这是一份关于 Ruby on Rails 框架的文档,版本为 1.2.1。Ruby 是一种面向对象的编程语言,而 Rails 是一个基于 Ruby 的开源 Web 应用程序框架,遵循 Model-View-...
rails3-mongoid-devise, 示例 Rails 3.2应用,带有数据 Mongoid,用于验证 Rails 4.1有关设计的Rails 4.1示例应用程序,请参见:rails设计有一个用于设计的教程:Rails 设计教程。类似示例和教程这是来自 RailsApps...
- 如何在Rails中实现RESTful接口。 - **案例分析**: - 分析一个典型的RESTful应用示例。 #### 九、练习作业2-在Group里面发表文章-双层RESTFul - **目标**: - 在Group中添加Post功能。 - **实现过程**: - 创建...
rails-dev-box, 面向 Ruby on Rails 核心开发的虚拟机 用于 Ruby on Rails 核心开发的虚拟机简介注意:这个虚拟机不是为 Rails 应用程序开发而设计的,只是为。 这个项目自动设置开发环境,以便在 Ruby on Rails ...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
-" 指涉的是一个关于使用 Flexigrid 和 Ruby on Rails 框架的初级教程或示例项目。Flexigrid 是一个 JavaScript 库,常用于创建可扩展、灵活的表格,而 Ruby on Rails 是一个流行的开源 Web 应用程序框架,遵循 MVC...