そのため、Tower の 1 対多の関係機能を使用しようとしてさまざまな足場を生成してきましたが、関連するインスタンスを実際にリンクして関係を利用する方法がわかりません。たとえば、私の最新の足場は次のように生成されました。
tower generate scaffold User email:string firstName:string lastName:string hasMany:posts
tower generate scaffold Post title:string body:text userId:integer belongsTo:user
Rails では、post モデルの userId フィールドは、その ID を共有するユーザーとの接続を形成し、それを使用して関係にアクセスできます。しかし、ここでは何もしていないようです。https://github.com/viatropos/tower/wiki/1-nのコードを使用しようとすると、エラーが発生します。
タワー コンソールで、サンプル ユーザーを作成して投稿することができました (サーバーを実行し、Web ページのフォームを使用することで、これを簡単に行うこともできます)。
tower> user = new App.User
tower> user.attributes = { email: "bill@bill.com", firstName: "bill", lastName: "billiams" }
tower> post = new App.Post
tower> post.attributes = { title: "A Post", body: "This is a short post.", userId: "4fbf23224503fe670e000006" }
これらのインスタンスはデータベースに永続化されますが、次のようなコードを試すと:
tower> user.get('posts').exists()
「TypeError: 未定義のメソッド 'exists' を呼び出すことはできません」が表示されます。同様に、次を呼び出します。
tower> user.get('posts').create(title: 'Berlin never sleeps.')
「TypeError: 未定義のメソッド 'create' を呼び出せません」を生成します。モデルやコントローラーでこのようなことをしようとすると、同じようなことが起こります。私は本当にここで立ち往生しており、これがどのように機能するかを数日間理解しようとしていますが、他にどこを見ればよいかわかりません。誰かが私が覗くことができるサンプルコードを持っていれば、それは素晴らしいでしょう.そうでなければ、ある種の説明も役に立ちます. ありがとう。
[編集: 私の作業例と、手順を説明する詳細な README は、ここにあります: https://github.com/edubkendo/demoApp ]