내가 루비 레일에 내 우편물과 테스트를 실행하고, 나는 다음과 같은 오류가 점점 오전 :잘못된 datetime 값입니다. 루비 레일에
*********-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', '[email protected]', '$2a$04$hz6pvZctid6gZEuv0.qAe.0mEfbEjxso9GrXwC3yHRhIThIJ7Vx5m', 1, 1, '2014-12-18 01:07:49 UTC', '2014-12-18 01:07:49', '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`, `email`, `password_digest`, `admin`, `activated`, `activated_at`, `created_at`, `updated_at`, `id`) VALUES ('Michael Example', '[email protected]', '$2a$04$XTAWn5P9kikgOXqxQgiJqOjP027p4HnucHZ6pth2aaLwolaFcehsm', 1, 1, '2014-12-18 01:07:49 UTC', '2014-12-18 01:07:49', '2014-12-18 01:07:49', 762146111)
2 runs, 0 assertions, 0 failures, 2 errors, 0 skips
나는, 내가 시간을 사용하고 있음을 볼 수 users.yml 파일 내 비품을 검사 할 때 존 루비 스탬프 :
michael:
name: Michael Example
email: [email protected]
password_digest: <%= User.digest('password') %>
admin: true
activated: true
activated_at: <%= Time.zone.now %>
archer:
name: Sterling Archer
email: [email protected]
password_digest: <%= User.digest('password') %>
activated: true
activated_at: <%= Time.zone.now %>
lana:
name: Lana Kane
email: [email protected]
password_digest: <%= User.digest('password') %>
activated: true
activated_at: <%= Time.zone.now %>
mallory:
name: Mallory Archer
email: [email protected]
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: "[email protected]",
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: true,
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 ["[email protected]"], mail.to
assert_equal ["[email protected]"], mail.from
assert_match "Hi", mail.body.encoded
end
test "password_reset" do
mail = UserMailer.password_reset
assert_equal "Password reset", mail.subject
assert_equal ["[email protected]"], mail.to
assert_equal ["[email protected]"], mail.from
assert_match "Hi", mail.body.encoded
end
end
내가 잘못하고 있어요 뭔가가 있나요? 도와 줘서 고마워.
마이클 하틀가 sqlite3를, 당신은 MySQL을 사용하는 경우 그러나 @Ruby_Pry의 대답은 정확 말했다 인용 SQL 값으로 변환합니다. – moeabdol
필자의 경우,'Time :: DATE_FORMATS [: db]'를''% d/% m/% Y % H : % M : % S '' 대신에''date_time_formats ' % Y/% m/% d % H : % M : % S ''. –