0

サイトから GeddyJS Todo チュートリアルを拡張しようとしています。Todo プロジェクトにもう 1 つのモデル Project を追加しました。Todo-hasOne-Project 方式で Todo と Project の関係を設定したいと考えています。

Todo アイテムが保存された後に関係を設定しようとする create controller メソッドのコードを次に示します。

todo.save(function(err, data) {
        if(err) {
            params.errors = err;
            self.transfer('add');
        } else {
            geddy.model.Project.getProjectById(todo.parent, function(err, project) {
                if(err) {
                    params.errors = err;
                    self.transfer('add');
                }
                else {
                    todo.setProject(project);
                    self.redirect({ controller: self.name });
                }
            });

        }
    });

todo の親プロパティ (プロジェクトの ID) を取得してデータベースからプロジェクトを取得するクラス メソッド (getProjectById) を使用しています。

私の Todo クラス ファイルには、次のように定義された hasOne リレーションシップがあります。

this.hasOne('Project');

次のようなコンパイラ エラーが発生し続けます。

c:\Program Files (x86)\nodejs\node_modules\geddy\node_modules\model\lib\index.js:254
            throw new Error('Item cannot have a hasOne/hasMany association ' +
                  ^
Error: Item cannot have a hasOne/hasMany association if it is not yet saved..

例によってドキュメントを見つけるのは難しいことがわかっているので、Web で最も強力なコミュニティに尋ねてみようと思いました。

私が欠けているものを知っている人はいますか?

4

1 に答える 1

1

この問題はまだ発生していますか? もしそうなら、あなたは実行してみてください

$ npm update -g geddy

これで問題が解決する可能性が高くなります。

于 2012-11-09T23:37:05.777 に答える