extjs4 rails 3 валидация модели на уникальность - PullRequest
1 голос
/ 14 сентября 2011

я работаю с extjs 4 и рельсами 3. Я хочу проверить уникальность поля, которое находится на extjs форма . Я хочу получить подтверждение на Rails-модели на уникальность, поэтому я сделал следующее на моей модели рельсов:

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

Я вставляю новые значения формы в хранилище следующим образом:

store.add(values);

Если проверка не пройдена, запись не будет вставлена ​​в базу данных. Теперь я хочу открыть окно с предупреждением, указывающее, что запись повторяется при сбое проверки, чтобы пользователь мог редактировать поле. Как сделать эту связь между контроллером рельсов и формой extjs для проверки? Также будет ли в этом полезен обратный вызов rails?

1 Ответ

0 голосов
/ 09 октября 2011

Вот как передать сообщения, возвращенные с сервера, в приложение 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 Controller


Затем в обоих случаях ошибки или успехавозвращаемый ответ должен быть:

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);
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...