첫 번째 사항 : 저는 Ruby 1.9.3 및 DataMapper 1.2.0을 사용하고 있습니다. DataMapper : 개체 인스턴스를 나열 할 수없고 DateTime을 인스턴스화 할 수 없습니까?
나는 다음과 같은 단순 해 보이는 모델 생성 : 내가 IRB 쉘이를 해고 할 수class User
include DataMapper::Resource
property :id, Serial
property :username, String
property :password, BCryptHash
property :name, String
property :email, String
property :created_at, DateTime
end
를, 그것은 데이터베이스를 생성하고, 모두가 행복입니다. 그런 다음 시도해 보겠습니다.
콘솔에 인쇄 할 수있는 모든 User 인스턴스를 수신하고 모든 속성을 그대로 유지합니다. 나는 tim.save!
를 달리고 성공을 볼 수있다. 그러나이 시점에서 사용자를 나열하려고하면 오류가 발생합니다.
irb(main):001:0> User.all
(Object doesn't support #inspect)
=>
irb(main):002:0> User.first
NoMethodError: undefined method `new!' for DateTime:Class
from /usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/gems/1.9.1/gems/dm-do-adapter-1.2.0/lib/dm-do-adapter/adapter.rb:153:in `next!'
from /usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/gems/1.9.1/gems/dm-do-adapter-1.2.0/lib/dm-do-adapter/adapter.rb:153:in `block in read'
from /usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/gems/1.9.1/gems/dm-do-adapter-1.2.0/lib/dm-do-adapter/adapter.rb:276:in `with_connection'
from /usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/gems/1.9.1/gems/dm-do-adapter-1.2.0/lib/dm-do-adapter/adapter.rb:141:in `read'
from /usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core/repository.rb:162:in `read'
from /usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core/model.rb:377:in `first'
from (irb):5
from /usr/local/Cellar/ruby/1.9.3-p0/bin/irb:12:in `<main>''
실마리가 있습니까? 다른 사람은 #inspect
을 지원하지 않기 때문에 SO 또는 Google에 실제로 나타나지 않으며 Ruby stdlib 문서에는 DateTime에 대해 new!
메소드가 없습니다.
열 유형을'DateTime'으로 지정 했음에도 불구하고'DateTime.now' 대신에'Time.now'를 사용하여 자신을 만들고 있음에 유의하십시오; 그것을 바꾼다면 도움이 될까요? – Phrogz
잘 잡았다.하지만 둘 다 시도했다. (DM 문서의 어딘가에서 읽고 쓸 수있다.) 같은 결과. – Tim
OK; 미안, 더 이상 도울 수 없어, 나는 DM이 아니라 [Sequel] (http://sequel.rubyforge.org)을 사용한다. – Phrogz