2

我正在尝试使用 ExtJs4 和 Ruby On Rails 创建一个简单的 CRUD 应用程序。我正在尝试使用 JSON 实现 resftul 数据存储。

我在更新记录时遇到问题。请求正在发送到服务器端并且数据库正在更新,但在数据存储中我仍然有标记为“脏”的记录。当我尝试更新另一条记录时,我发送了两个请求(一个用于上一条记录,另一个用于下一条记录)。

我也有创建新记录的问题。正在服务器端创建一条记录,但在我的数据存储中,它仍被标记为未保存(脏),因此在下一次更新/创建操作期间,该记录再次发送到服务器,结果我在我的数据库中复制了记录。

问题是 - 如何构建一个有效的数据存储和相应的模型来使用 Rails 中的 restful json?

您可以在我的 github 帐户上找到我的应用程序的来源:https ://github.com/lucassus/extjs4-account-manager

商店:https ://github.com/lucassus/extjs4-account-manager/blob/master/public/javascripts/app/store/Users.js 和模型:https ://github.com/lucassus/extjs4-帐户管理器/blob/master/public/javascripts/app/model/User.js

4

1 回答 1

4

原因是 ExtJS JsonReader 期望 'users' 根是一个数组。这意味着当它只是从您的创建和更新操作中获取单个用户对象时,它无法正确解析它,因此无法正确更新模型以标记收到的更改,从而删除脏标志。

要完成这项工作,您可以按照以下方式更改 rails 操作中的格式行:

format.json { render :json => { :success => true, :users => [@user] } }

(注意关于单个用户对象的方括号)

然后这将正确更新脏标志。

于 2011-05-25T13:53:32.660 回答