2016-03-27 14 views
0

データベースに新しい項目を作成するときにフィールドにデフォルト値を設定しようとしていますが、動作させることができません。waterline/sailsjsで動作するdefaultsToを取得できません

私はこれは私のファイルはどのように見えるかである最新バージョン

である、現在SailsJS 0.12.1を使用しています:要素がある場合には

モデル/ Users.js

module.exports = { 

    schema: true, 

    attributes: { 
     firstName: { 
      type: 'string', 
      required: true, 
     }, 
     role: { 
      type: 'string', 
      enum: ['admin', 'user', 'limited', 'suspended', 'deleted'], 
      defaultsTo: 'limited' 
     }, 
    } 
} 

データベースに作成された、私はrole値を取得しません。それはそのように見えます:

{ 
    "_id": { 
     "$oid": "56f8616163a59cf813998f8a" 
    }, 
    "firstName": "Alex", 
    "createdAt": { 
     "$date": "2016-03-27T22:40:33.151Z" 
    }, 
    "updatedAt": { 
     "$date": "2016-03-27T22:40:33.151Z" 
    } 
} 

私は何を忘れましたか?

ありがとうございます!

+0

セイルモンゴーアダプター – alexmngn

+0

テストするために青写真を使って試してみてください.... localhst:PORT/users/create?firstName = XYZ あなたは何を見ていますか? – vkstack

答えて

1

今日も同様の問題がありました。私は、これを解決するために、必要なものが「真」であることを追加しました。新規ユーザモデルの

例:

module.exports = { 

    schema: true, 

    attributes: { 
     firstName: { 
      type: 'string', 
      required: true, 
     }, 
     role: { 
      type: 'string', 
      required: true, 
      enum: ['admin', 'user', 'limited', 'suspended', 'deleted'], 
      defaultsTo: 'limited' 
     }, 
    } 
} 

私はこのことができます願っています。

+0

驚くばかり!それは私の問題を解決する!これはネストされたオブジェクトでは機能しないようですが、提案がありますか? '属性:{ 好み:{ 言語:{ タイプ: 'string' は、 defaultsTo 'en' と、 が必要:真、 } } }' – alexmngn

+0

@alexmngnは、私は、SailsJSにかなり新しいですがこのようなことをする適切な方法は、好みのための別個のモデルを持つことだと私は思う。あなたは2人の間に関連を作ります。 [SailsJS協会](http://sailsjs.org/documentation/concepts/models-and-orm/associations) – jdaltonchilders