我尝试从模型对象中保存一些数据,但没有任何反应:( 我不对的是什么?
class Gallery
include DataMapper::Resource
property :id, Serial
property :title, String
property :user, String
property :album, String
property :place, String
property :fotki, Text
property :date, Date
property :created_at, DateTime
default_scope(:default).update(:order => [:created_at.desc])
def get_images
if @fotki.nil? then
fotki = Fotki.get(@user, @album)
self.update(:fotki => fotki.to_json)
puts 'Request'
fotki
else
puts 'Use Cache'
JSON.parse(@fotki)
end
end
end
答案 0 :(得分:3)
datamapper中存在一个可能导致以下情况的错误:
resource = SomeModel.new(attributes_from_somewhere)
resource.valid? # => true
resource.save # => false, and no db interaction
resource.saved? # => false
无法保存的有效资源。沉默的失败。
使用raise_on_save_failre
设置可以解决此静默故障问题。但是异常消息仍然毫无意义。只讨论#save返回false;)。
如果持久保存对特定属性无效的值,则会出现问题。例如date
属性中的布尔值或非强制字符串。
使用fix datamapper会在要保留属性的无效值时引发有意义的异常。遗憾的是,目前还没有包含修复的版本。您必须从https://github.com/datamapper/dm-core尝试主分支!
免责声明:我是修复的作者。