extjs4 rails 3模型验证的唯一性

时间:2011-09-14 09:45:13

标签: ruby-on-rails-3 validation extjs model

我正在使用extjs 4&铁轨3。  我希望验证extjs 表单上字段的唯一性。  我希望在 Rails模型上进行验证以获得唯一性,所以我已经完成了我的rails模型:

validates_uniqueness_of :search_key, :message => "Duplicate value found"

我正在将新的表格值插入商店,如下所示:

store.add(values);

如果验证失败,则记录不会插入数据库。 现在我想弹出一个警告框,指示验证失败时该条目是重复的,以便用户可以编辑字段。 我怎样才能在轨道控制器和轨道上进行这种通信。 extjs形式验证? 还有rails回调会对它有用吗?

1 个答案:

答案 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);
  }
});