【发布时间】:2011-09-04 08:34:29
【问题描述】:
我尝试从模型对象中保存一些数据,但没有任何反应:( 我哪里不对?
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
【问题讨论】:
-
你到底想做什么?阅读您的代码并不清楚。我不相信
update接受这样的:order,因为它不是选择查询,而是更新。除此之外,您永远不应该尝试直接从类的主体内部写入数据。添加一个方法并显式调用它。每当类碰巧被加载到内存中时,该代码就会运行,这很糟糕。 -
我使用外部服务来存储照片。并使用它的 API 来获取为 :user 和 :album number 指定的照片 URL。然后我明白了我想在数据库中缓存数据而不是将来的新请求。我像这样调用 gallery = Gallery.get(params[:id]);照片 = 图库.get_images
-
gallery.errors包含什么?当我第一次发表评论时,我有些困惑,关于default_scope电话的用途。这不是一个非常清晰的界面,但无论如何都是DM。我现在学到了一些东西! -
Nothing :( pry(#
)> errors => #<:validations::validationerrors:0x00000001b0f918>
标签: ruby datamapper