您可以像这样创建和初始化ActiveRecord对象吗?
exercise = Exercise.new
exercise.name = "foo"
exercise.description = "bar"
exercise.unit_id = 123
我正在尝试这样做而且我一直在
ActiveRecord::ConnectionNotEstablished - ActiveRecord::ConnectionNotEstablished:
/usr/lib/ruby/1.8/active_record/connection_adapters/abstract/connection_pool.rb:326:in `retrieve_connection'
/usr/lib/ruby/1.8/active_record/connection_adapters/abstract/connection_specification.rb:123:in `retrieve_connection'
/usr/lib/ruby/1.8/active_record/connection_adapters/abstract/connection_specification.rb:115:in `connection'
/usr/lib/ruby/1.8/active_record/base.rb:1271:in `columns'
/usr/lib/ruby/1.8/active_record/base.rb:3014:in `attributes_from_column_definition_without_lock'
/usr/lib/ruby/1.8/active_record/locking/optimistic.rb:55:in `attributes_from_column_definition'
/usr/lib/ruby/1.8/active_record/base.rb:2434:in `initialize'
main.rb:14:in `new'
我只想创建并初始化对象,然后调用.save
方法。如果我这样做不正确,请告诉我。
答案 0 :(得分:2)
简答:是的,您需要连接!
除非有连接,否则您不能(通常)使用ActiveRecord。
对象上的属性集由表上的列确定。这意味着除非您有连接,否则无法使用该对象。
在任何情况下,如果没有连接,在调用exercise.save
后会发生什么?
因此,如果您只需要验证,则可以在瞬态类上重用ActiveSupport :: Validation。
答案 1 :(得分:0)
这意味着Rails无法连接到您的数据库。确保您的数据库服务器已启用(如果适用),并确保config/database.yml
file正确无误。
答案 2 :(得分:0)
在代码顶部试试
ActiveRecord::Base.establish_connection(
:adapter => "mysql",
:host => "localhost",
:username => "<your database username>",
:password => "<your database password>",
:database => "<your database name>"
)
以上代码应建立与数据库的ActiveRecord数据库连接。您可以在此处查看手册http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-establish_connection。祝你好运!