我正在使用extjs 4&铁轨3。 我希望验证extjs 表单上字段的唯一性。 我希望在 Rails模型上进行验证以获得唯一性,所以我已经完成了我的rails模型:
validates_uniqueness_of :search_key, :message => "Duplicate value found"
我正在将新的表格值插入商店,如下所示:
store.add(values);
如果验证失败,则记录不会插入数据库。 现在我想弹出一个警告框,指示验证失败时该条目是重复的,以便用户可以编辑字段。 我怎样才能在轨道控制器和轨道上进行这种通信。 extjs形式验证? 还有rails回调会对它有用吗?
答案 0 :(得分:0)
以下是如何将从服务器返回的消息传递给extjs应用程序,我假设您可以根据需要修改此消息,或者如果我需要澄清任何内容,请告诉我:
<强> EXTJS 强>
在模型中,添加:
proxy: {
type: 'rest',
url: '/manifest-items',
reader: {
type: 'json', // We expect the server to give us a JSON string as a response
root: 'rows',
totalProperty: 'total',
messageProperty: 'message',
}
},
Rails控制器
然后,在错误或成功的两种情况下,返回的响应应为:
render :json => {:success => false, :message => "some error", :rows => [something], :total => x}.to_json
返回Extjs
在extjs中,可以按如下方式访问消息:
重要:请注意失败时获取错误消息与成功案例之间的区别。
manifestItem.save({
success: function(records, operation) {
Ext.Msg.alert(operation.resultSet.message);
},
failure: function(records, operation) {
Ext.Msg.alert(operation.error);
}
});