Tag: 日期

保留Rails中的时区

如果我有来自客户的”Wed, 22 Jun 2011 09:43:58 +0200″forms的时间字符串,我希望保存时区。 这很重要,因为重要的不仅是绝对的UTC时间,还有时区。 Time.zone.parse(t)会将时间转换为Time.zone正在使用的区域, Time.zone丢失源时区。 我是否必须从上面的字符串中手动提取时区,或者是否有惯用的方法来执行此操作?

Rails按日期查找笔记

我创建了一个简单的rails应用程序,它有一个人和一个笔记模型。 人们有许多笔记和笔记属于人 该应用程序工作,我能够显示特定人的所有笔记,但我希望能够显示特定日期的单个笔记。 默认情况是今天的日期。 我目前有以下内容: Body: 我已经尝试了几种不同的方法但是没有任何方法可以向我显示今天的日期。 我试图创建一个命名范围,但失败了,并尝试使用: @person.notes.find_by_created_at(Time.now-1.day) 有人能指出我正确的方向吗? 谢谢 汤姆 # 我使用了下面的代码并想出了这个。 我的节目视图看起来像这样。 Notes [“created_at >= ? “, Time.now.beginning_of_day]) do |note| %> Body: 我想我可能在我的视图中使用了错误的语法,或者甚至不应该在视图中使用它? Ť

显示从数据库到现在最近的未来时间

在我的Ruby on Rails应用程序中,我希望能够在数据库中显示最接近当前时间的下一个未来时间,例如,如果存在时间为13:00,13:30,18的记录,则在数据库中显示:00,19:00等。如果当前时间是13:48,则显示时间18:00。 我有一个类似的事情与日期: = Date.today}.sort_by(&:show_date).first.show_date.strftime(“%A %e %B %Y”) %> 但试图适应这个时间: = Time.now}.sort_by(&:show_time).first.show_time %> 这不起作用,我收到以下错误: undefined method `show_time’ for nil:NilClas 这是因为s.show_time >= Time.now 。 如果我将其更改为s.show_time = Time.now错误发生但是它只显示当前时间而不是数据库中的时间。 值得注意的是,show_date和show_time在同一记录中,例如第一条记录的日期可能是26/01/2015,时间是22:00。 我想要的是显示日期在未来的记录时间并显示该日期的第一次,因为数据库中有两条记录,日期为26/01/2015,另一条记录的时间为22:00另一个时间是22:30。 有人可以帮忙吗?

Rails 5.1 group_by年和月,并显示两者

我正在为我的费用开发一个rails应用程序。 我有3个模型,如:用户,支出和货币。 我可以通过表单创建支出,我有标题,描述,金额,currency_id,user_id。 所有的关系都是有效的。 我使用来自用户控制器的show.html.erb来显示current_user的所有费用。 这很好。 然后我将费用分组在一起并按日期排序。 我实际上做了两组,第一组是今天和其他组。 因此,在显示屏上显示我今天创建的费用列表(第一组),然后是月份列表,其中包含前一个日期(第二组)的费用。 现在它显示了这个: Today Expense 1… Expense 2… January … … … December … … 等等… 我想在月份旁边添加年份,以便它显示如下: Today … … January 2018 … … December 2017 … … 除此之外,我希望将这个月和年份作为一个链接,这样当您点击它时,您将转到一个新页面,仅显示该特定月份的所有费用。 多数民众赞成。 是的,我也使用will_paginate。 现在我做的就是这个,让我们从我的UsersController开始: class UsersController params[:page], :per_page => 10) #Retrives all messages and divides into two groups todays messages […]

用户如何选择一周中的几天?

如何为一周中的每一天创建一个复选框,使其如下所示: []太阳[]星期一[]星期二[]星期三[]星期四[]星期五[]星期六 然后,用户将在_form中检查他承诺进行30天习惯挑战的日期。 EX: []太阳[✓]星期一[✓]星期二[✓]星期三[✓]星期四[✓]星期五[星期六]星期六 我不认为字符串或类似下面的东西会起作用: EX 1 MON EX 2 因为我希望每一天能够真实地代表日历上的每一天,这样我才能最终弄清楚我如何根据他的开始日期以及他多少天来计算他在30天的习惯挑战中剩下的天数。承诺/错过。 但回到这个具体问题: 如何为一周中的每一天创建复选框? 此function适用于:days 。      Started: [:month, :day, :year], class: ‘date-select’ %> class HabitsController < ApplicationController before_action :set_habit, only: [:show, :edit, :update, :destroy] before_action :correct_user, only: [:edit, :update, :destroy] before_action :authenticate_user!, except: [:index, :show] def index @habits = Habit.all end def show […]

如何更改rails migration t.timestamps以在postgres中使用`timestamp(0)without timezone`

我试图找出如何更改t.timestamps在rails迁移中使用的本机数据类型。 最终在postgres中的默认类型是timestamp without timezone 。 我想要的是timestamp(0) without timezone 。 我想更改本机数据类型,以便在创建新表并在迁移中使用t.timestamps ,它会自动创建正确的时间戳数据类型。 我需要timestamp(0) without timezone因为我的rails应用程序与laravel应用程序共享其数据库,并且两个应用程序都可以插入数据。 由于rails使用毫秒/ laravel的事实没有,并且似乎没有办法(截至2018-10-23)laravel支持包含不同格式的时间戳的表( Ymd H:i:su vs Ymd H:i:s )无需关闭模型中的时间戳,基本上禁用它们的自动管理,我想让数据库强制使用单一格式( Ymd H:i:s )。 有关更多详细信息,请另外提问: 有没有办法将Rails默认时间戳更改为Ymd H:i:s(而不是Ymd H:i:su)或laravel忽略Ymd H的小数部分:i:su? 所以我想使用timestamp(0)来截断毫秒,而不必考虑在创建新表时正确设置表时间戳类型,因为本机类型已经是timestamp(0) 我试过这个 ./config/environments/initializers require “active_record/connection_adapters/postgresql_adapter” module ActiveRecord module ConnectionAdapters class PostgreSQLAdapter NATIVE_DATABASE_TYPES.merge!( timestamp: { name: “timestamp(0) without timezone” } ) end end end 和像这样的迁移 class […]

Rails路由与日期

我的问题是关于在rails应用程序的路由中按日期使用filter,目前我已经准备好了匹配routes.rb文件中日期模式的规则,它看起来像这样: match “itineraries/:day/:month/:year” => “itineraries#index”, :constraints => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ } match “itineraries/new/:day/:month/:year” => “itineraries#new”, :constraints => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ } resources :itineraries match ‘/:controller(/:action(/:id))’ root :to => “itineraries#index” 那个匹配例如/ itineraries / 01/01/2011,问题来自我从资源生成路由,例如,itineraries_path(:year => 2011,:month => 1,:day => 1)生成: /行程?天= 1个月= […]

使用rails_admin为日期字段添加默认值

使用rails (4.2.10)和rails_admin (1.2.0)我试图将默认日期值添加到User模型的confirmed_at字段。 它适用于编辑视图,但不适用于新视图。 这是我的代码: config.model ‘User’ do list do […] end show do […] end edit do field :confirmed_at do default_value DateTime.now end exclude_fields […] end end

具有validation的预留类型系统 – Rails 3.0

尝试“validation”对象日期的唯一性的最佳方法是什么。 – 例如,我有一个房间,一次只能有一个人。 用户可以提前预订此房间。 目前,客房从3月1日至3月5日预订。 我想阻止任何人在这些日期再次预订。 因此,如果有人试图从2月25日到3月2日预订房间,我需要告诉他们他们不能,因为房间已满。 – 我正在使用Rails 3.0

如果今天显示Rails created_at?

是否可以显示created_at日期,仅当该日期与今天的日期匹配时? 这可能吗? 或者应该在控制器而不是视图中完成? 谢谢, 丹尼 我的环境中有以下内容.rb: ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.merge!(:default => ‘%d/%m/%Y’) ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(:default => ‘%d/%m/%Y’)