我有简单的app显示recrods列表,用户也可以通过id编辑barticular记录。
因为列表很大,所以我不会将其整体取出,而是部分通过Product.fetch(data: $.param(page: 1))
。
然后,当有人尝试编辑记录时,我会调用Product.find(id)
,如果recrord已经预取了fetch
,那么它工作正常,但是当记录尚未提取时,我得到的错误如下:{{1 }}
所以,问题是为什么"Product" model could not find a record for the ID "1152"
没有执行ajax调用以及如何使它执行它或者可能存在另一种解决方案?
答案 0 :(得分:1)
Spine.find
仅查看已加载的记录。执行ajax请求不是find
的功能。所以你必须尝试捕捉你的发现,当它发出这个错误时,你必须抓取它。
id = 1152
try
product = Product.find id
catch err
Product.fetch(
data:
id: id
processData: true
)
# Try again after Product.refresh
老实说,我认为这是一种愚蠢的方法,但它是脊柱的工作方式......我宁愿让它自动获取,或者至少不会在查找中引发错误。