如何在Rails中使用ember-validations?

时间:2014-01-20 03:45:54

标签: ruby-on-rails ember.js

我正在使用的old client side validations gem已不再维护。

我相信以上宝石的作者推荐ember-validations。我已经搜索过,无法找到有关如何在Rails中使用ember-validations gem的任何指南。

是否有人能够就如何实现这一目标建议任何资源?

1 个答案:

答案 0 :(得分:0)

如果您使用ember作为Rails应用程序的一部分,则可以按照Dockyard版本的这些步骤操作。另外,请仔细阅读他们的文档here

  1. 从Dockyard获取Ember-Validations javascript。

    • 在新目录中:git clone git://github.com/dockyard/ember-validations.git
    • cd ember-validations
    • 捆绑安装
    • 捆绑exec rake dist
  2. 构建将在dist文件夹中生成多个文件。将文件“ember-validations.js”复制到您的ember应用程序的mixins文件夹中。

  3. 扩展您要验证的Ember应用中的每个模型。例如,它可能如下所示:

    App.User = DS.Model.extend(Ember.Validations.Mixin, {
      name: DS.attr('string'),
      (etc...)
    
  4. 重新打开每个模型并编写验证文档,如文档所示。例如:

    App.User.reopen({
      validations: {
        firstName: {
          presence: true,
          length: { minimum: 5 }
        },
        age: {
          numericality: true
        },
        profile: true
      }
    });
    
  5. 您可能需要在控制器中为创建和更新操作添加一些内容,以便在保存之前检查模型是否已经过验证。你可以链接.validate()。then()。例如:

    App.UsersAddNameController = Ember.ArrayController.extend({
      actions: {
        addName: function(present){
          currentRecord = this.store.createRecord('name', {
            name: this.get('newName'),
          });
          currentRecord.validate().then(function(){
            currentRecord.save()
          },
          function(){
            alert(currentRecord.get('errors.name'))
          })
        }
      }
    });