加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 日期时间值不正确; Ruby on Rails

发布时间:2020-12-17 01:34:16 所属栏目:百科 来源:网络整理
导读:我正在使用 Ruby on Rails中的邮件程序运行测试,我收到以下错误: *********-C02MGBVJFD57:myapp ************$bundle exec rake test:mailers# Running:EEFinished in 0.110500s,18.0995 runs/s,0.0000 assertions/s. 1) Error:UserMailerTest#test_account
我正在使用 Ruby on Rails中的邮件程序运行测试,我收到以下错误:

*********-C02MGBVJFD57:myapp ************$bundle exec rake test:mailers

# Running:

EE

Finished in 0.110500s,18.0995 runs/s,0.0000 assertions/s.

  1) Error:
UserMailerTest#test_account_activation:
ActiveRecord::StatementInvalid: Mysql2::Error: Incorrect datetime value: '2014-12-18 01:07:49 UTC' for column 'activated_at' at row 1: INSERT INTO `users` (`name`,`email`,`password_digest`,`admin`,`activated`,`activated_at`,`created_at`,`updated_at`,`id`) VALUES ('Michael Example','michael@example.com','$2a$04$hz6pvZctid6gZEuv0.qAe.0mEfbEjxso9GrXwC3yHRhIThIJ7Vx5m',1,'2014-12-18 01:07:49 UTC','2014-12-18 01:07:49',762146111)



  2) Error:
UserMailerTest#test_password_reset:
ActiveRecord::StatementInvalid: Mysql2::Error: Incorrect datetime value: '2014-12-18 01:07:49 UTC' for column 'activated_at' at row 1: INSERT INTO `users` (`name`,'$2a$04$XTAWn5P9kikgOXqxQgiJqOjP027p4HnucHZ6pth2aaLwolaFcehsm',762146111)


2 runs,0 assertions,0 failures,2 errors,0 skips

当我检查我的fixtures users.yml文件时,我看到我正在使用时区ruby戳:

michael:
  name: Michael Example
  email: michael@example.com
  password_digest: <%= User.digest('password') %>
  admin: true
  activated: true
  activated_at: <%= Time.zone.now %>

archer:
  name: Sterling Archer
  email: duchess@example.gov
  password_digest: <%= User.digest('password') %>
  activated: true
  activated_at: <%= Time.zone.now %>

lana:
  name: Lana Kane
  email: hands@example.gov
  password_digest: <%= User.digest('password') %>
  activated: true
  activated_at: <%= Time.zone.now %>

mallory:
  name: Mallory Archer
  email: boss@example.gov
  password_digest: <%= User.digest('password') %>
  activated: true
  activated_at: <%= Time.zone.now %>

<% 30.times do |n| %>
user_<%= n %>:
  name:  <%= "User #{n}" %>
  email: <%= "user-#{n}@example.com" %>
  password_digest: <%= User.digest('password') %>
  activated: true
  activated_at: <%= Time.zone.now %>
<% end %>

我的db / seeds.rb文件如下所示:

User.create!(name:  "Example User",email: "example@railstutorial.org",password:              "foobar",password_confirmation: "foobar",admin: true,activated: true,activated_at: Time.zone.now)

99.times do |n|
  name  = Faker::Name.name
  email = "example-#{n+1}@railstutorial.org"
  password = "password"
  User.create!(name:  name,email: email,password:              password,password_confirmation: password,activated_at: Time.zone.now)
end

编辑:这是测试

测试/邮寄者/ user_mailer_test.rb:

require 'test_helper'

class UserMailerTest < ActionMailer::TestCase

  test "account_activation" do
    mail = UserMailer.account_activation
    assert_equal "Account activation",mail.subject
    assert_equal ["to@example.org"],mail.to
    assert_equal ["from@example.com"],mail.from
    assert_match "Hi",mail.body.encoded
  end

  test "password_reset" do
    mail = UserMailer.password_reset
    assert_equal "Password reset",mail.body.encoded
  end
end

有什么我做错了吗?谢谢您的帮助.

解决方法

activate_at是否在迁移文件中键入为datetime?您可能想尝试Time.zone.now.to_datetime.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读