我对控制台中收到的模型(调用 'Model.connection' 建立连接)消息感到困惑
I'm confused by Model (call 'Model.connection' to establish a connection) message received in console
我最近在启动我的第一个 Rails 5 应用程序后注意到了这一点,但直到现在,它还没有引起我无法克服的问题。
当我尝试编写我的第一个 Rake 任务时,我无法克服的问题来了。我继续收到此错误:
ruby 2.3.3-p222
╳ ad_board categories ◆◆ rake reprocess_images
rake aborted!
NameError: uninitialized constant Image
/home/myname/Documents/workspace/ad_board/lib/tasks/reprocess_images.rake:3:in `block in <top (required)>'
/home/myname/.rvm/gems/ruby-2.3.3@myapp/gems/rake-11.3.0/exe/rake:27:in `<top (required)>'
/home/myname/.rvm/gems/ruby-2.3.3@myapp/bin/ruby_executable_hooks:15:in `eval'
/home/myname/.rvm/gems/ruby-2.3.3@myapp/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => reprocess_images
我假设我错误地编写了 rake 任务(可能仍然如此)或者我在这种情况下制作了我的模型 image.rb
images.rb
,但我没有。
当我去 rails c
看看我是否能弄清楚发生了什么,在输入 Image
后,我希望得到图像的参数,但我却得到了这个错误信息:
[1] pry(main)> Image
=> Image (call 'Image.connection' to establish a connection)
所以,我尝试了一些其他的东西:
[2] pry(main)> Image.connected?
=> false
[3] pry(main)> User.connected?
=> false
[4] pry(main)> Gallery.connected?
=> false
和...
[1] pry(main)> Image
=> Image (call 'Image.connection' to establish a connection)
[2] pry(main)> User
=> User (call 'User.connection' to establish a connection)
[3] pry(main)> User.first
User Load (1.3ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT [["LIMIT", 1]]
=> #<User id: 1, email: "user@example.com", created_at: "2017-01-10 21:43:53", updated_at: "2017-01-10 21:43:53", name: "First User", role: "admin", auth_token: nil>
[4] pry(main)> Image.first
Image Load (0.9ms) SELECT "images".* FROM "images" ORDER BY "images"."id" ASC LIMIT [["LIMIT", 1]]
=> #<Image:0x0000000595bf00 id: 1, file: "creativity.jpg", user_id: 20, created_at: Tue, 10 Jan 2017 21:43:58 UTC +00:00, updated_at: Tue, 10 Jan 2017 21:43:58 UTC +00:00>
我也输入了Image.connection
,但是和上面的代码一样,只是临时建立连接。离开控制台后,我继续从 运行 宁我的 rake 任务中收到原始错误消息。
我回到控制台并输入 Image
,然后收到消息 => Image (call 'Image.connection' to establish a connection)
那么,第一个问题是,为什么 "connection" 会自行中断、无法建立或保持不变?以我有限的经验,我以前没有 运行 参与过这个。
显而易见的后续行动是,如何解决问题并保持连接?
提前感谢您对这个问题的任何见解。
连接不会中断,只是在您执行需要的操作后才会连接。没有什么可以明智地修复连接。您实际的佣金问题是找不到 Image
模型。我怀疑这是因为你没有告诉 rake 加载 rails 环境。
在 rails 中,您可以在 rake
中执行以下操作
task reprocess_images: :environment do
Image.find_each do |img|
#do something
end
end
:environment
告诉它加载 rails 环境,它将为您自动加载内容。
你可以做到
console { ActiveRecord::Base.connection }
在你的开发环境中忽略它。
我最近在启动我的第一个 Rails 5 应用程序后注意到了这一点,但直到现在,它还没有引起我无法克服的问题。
当我尝试编写我的第一个 Rake 任务时,我无法克服的问题来了。我继续收到此错误:
ruby 2.3.3-p222
╳ ad_board categories ◆◆ rake reprocess_images
rake aborted!
NameError: uninitialized constant Image
/home/myname/Documents/workspace/ad_board/lib/tasks/reprocess_images.rake:3:in `block in <top (required)>'
/home/myname/.rvm/gems/ruby-2.3.3@myapp/gems/rake-11.3.0/exe/rake:27:in `<top (required)>'
/home/myname/.rvm/gems/ruby-2.3.3@myapp/bin/ruby_executable_hooks:15:in `eval'
/home/myname/.rvm/gems/ruby-2.3.3@myapp/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => reprocess_images
我假设我错误地编写了 rake 任务(可能仍然如此)或者我在这种情况下制作了我的模型 image.rb
images.rb
,但我没有。
当我去 rails c
看看我是否能弄清楚发生了什么,在输入 Image
后,我希望得到图像的参数,但我却得到了这个错误信息:
[1] pry(main)> Image
=> Image (call 'Image.connection' to establish a connection)
所以,我尝试了一些其他的东西:
[2] pry(main)> Image.connected?
=> false
[3] pry(main)> User.connected?
=> false
[4] pry(main)> Gallery.connected?
=> false
和...
[1] pry(main)> Image
=> Image (call 'Image.connection' to establish a connection)
[2] pry(main)> User
=> User (call 'User.connection' to establish a connection)
[3] pry(main)> User.first
User Load (1.3ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT [["LIMIT", 1]]
=> #<User id: 1, email: "user@example.com", created_at: "2017-01-10 21:43:53", updated_at: "2017-01-10 21:43:53", name: "First User", role: "admin", auth_token: nil>
[4] pry(main)> Image.first
Image Load (0.9ms) SELECT "images".* FROM "images" ORDER BY "images"."id" ASC LIMIT [["LIMIT", 1]]
=> #<Image:0x0000000595bf00 id: 1, file: "creativity.jpg", user_id: 20, created_at: Tue, 10 Jan 2017 21:43:58 UTC +00:00, updated_at: Tue, 10 Jan 2017 21:43:58 UTC +00:00>
我也输入了Image.connection
,但是和上面的代码一样,只是临时建立连接。离开控制台后,我继续从 运行 宁我的 rake 任务中收到原始错误消息。
我回到控制台并输入 Image
,然后收到消息 => Image (call 'Image.connection' to establish a connection)
那么,第一个问题是,为什么 "connection" 会自行中断、无法建立或保持不变?以我有限的经验,我以前没有 运行 参与过这个。
显而易见的后续行动是,如何解决问题并保持连接?
提前感谢您对这个问题的任何见解。
连接不会中断,只是在您执行需要的操作后才会连接。没有什么可以明智地修复连接。您实际的佣金问题是找不到 Image
模型。我怀疑这是因为你没有告诉 rake 加载 rails 环境。
在 rails 中,您可以在 rake
中执行以下操作task reprocess_images: :environment do
Image.find_each do |img|
#do something
end
end
:environment
告诉它加载 rails 环境,它将为您自动加载内容。
你可以做到
console { ActiveRecord::Base.connection }
在你的开发环境中忽略它。