Rails动态地考虑另一个表创建一个表

时间:2014-12-13 20:58:24

标签: ruby-on-rails ruby

我是红宝石的新手,如果我没有很好地描述这个问题,我很抱歉:)

所以,我想知道Rails是否有可能出现以下情况: 例如,我有一张桌子,里面有一些书。我们称之为书籍。 此表包含以下字段:name,nr_of_pages。

如何创建一个名为Pages的表,其中的字段数等于某本书的nr_of_pages中的值。 (图书'字段中的值由用户在" new.html.erb"视图中引入)

Books
-----------------------
| name  | nr_of_pages |
-----------------------

Pages
-------------------------------------------------
| book_id | page_1 | page_2 | | page_3 | ...etc |
-------------------------------------------------

当然页数:

belongs_to :book

并预订:

has_many :pages

如何用数据填充第二个表,因为这两个模型有不同的视图?

1 个答案:

答案 0 :(得分:1)

页面实际上就是这样的页面内容:

Books
-----------------------
| name  | nr_of_pages |
-----------------------

Pages
-------------------------------
| book_id | page_no | content |
-------------------------------

然后,当您创建页面时,您可以说:

Page.create(content: "This is the first page of text", page_no: 1, book: some_book)

然后在您的控制器中,您可以执行以下操作:

@pages = Book.find(by_some_id).pages.order(page_no: :asc)

这将为您提供一系列以升序循环的页面,使您能够在视图中使用#each循环来显示所有页面。