如何使用 Rails 3 在同一视图中创建同一类的多个对象?
Posted
技术标签:
【中文标题】如何使用 Rails 3 在同一视图中创建同一类的多个对象?【英文标题】:How to create several objects of the same class in the same view using Rails 3? 【发布时间】:2011-07-22 21:52:12 【问题描述】:假设我有一个类名 Object,它具有“名称”和“使用”属性。第二个名为“Person”的类有一个名为“how_many_objects_this_person_has”的属性。我正在尝试创建一个视图来寻找一个人(我提供了 id),看看这个人有多少个对象,比如说 N,并创建一个包含 N 行的表单,每个对象一个,两个字段对象的属性。当用户点击提交按钮时,必须保存所有对象,每个对象都有一个唯一的对象 ID。
有什么建议吗?我知道这看起来很简单,但我是初学者。我找了整整一个星期的答案,但自己无法解决。
非常感谢, 古斯塔沃
【问题讨论】:
做一个完整的教程来学习基础知识怎么样? railsforzombies.org 【参考方案1】:http://railscasts.com/episodes/196-nested-model-form-part-1 http://railscasts.com/episodes/197-nested-model-form-part-2
我认为您会发现,为了获得良好的用户体验,您很可能希望允许用户在记录过程中添加和删除记录,而不是预先确定要添加的记录数量。上面的 railscasts 展示了如何做到这一点
【讨论】:
几周前我设置了类似的东西,上面的 RailsCast 非常有帮助(两个部分)。确保在 Persons 模型的 attr_accessible 中列出 ":objects_attributes"。那个小小的疏忽让我绊倒了一段时间(尽管 RailsCasts 会告诉你很多......我只是错过了它)。【参考方案2】:哦,是的!我在我的应用程序的另一部分使用了相同的方法。没有意识到我可以做同样的事情,但没有显示任何关于 Person 类的内容。
顺便说一下,该教程中有两点需要注意。您必须在 attr_accessible 中列出 :objects_attributes(如上所述)。另一个是 javascript 代码中有一个双 html 转义,这使得实际的 html 被渲染。只需在“h(text text text text)”中查找一些文本并删除“h()”即可。
非常感谢!
【讨论】:
以上是关于如何使用 Rails 3 在同一视图中创建同一类的多个对象?的主要内容,如果未能解决你的问题,请参考以下文章