因此,我一直在生成不同的脚手架,尝试使用 Tower 的一对多关系功能,但我不知道如何实际链接相关实例以利用关系。例如,我最近的脚手架是这样生成的:
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只会给我错误。
在 Tower 控制台中,我能够创建一个示例用户并发布(我也可以通过运行服务器并使用网页上的表单很容易地做到这一点),如下所示:
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:无法调用未定义的方法‘存在’”。同样,调用:
tower> user.get('posts').create(title: 'Berlin never sleeps.')
产生“TypeError:无法调用未定义的方法'create'”。如果我在模型或控制器中尝试这样的事情,也会发生同样的事情。我真的被困在这里,并且已经尝试了几天来弄清楚它是如何工作的,但我不知道还能去哪里看。如果有人有我可以偷看的示例代码,那就太棒了,否则各种解释也会有所帮助。谢谢。
[编辑:我的工作示例,以及解释步骤的详细自述文件,可以在这里找到:https ://github.com/edubkendo/demoApp ]