2014-12-13 2 views
-1

루비를 처음 접했고 미안하지만 매우 잘 설명하지 않았다면 미안 해요 :)레일즈가 다른 테이블을 동적으로 테이블을 생성합니다.

그래서 가능성이 있는지 알고 싶습니다. 다음 레일 : 예를 들어 나는 몇 권의 책을 보관하고있는 테이블이 있습니다. 책이라고 부르 자. 이 테이블에는 name, nr_of_pages 필드가 있습니다.

특정 책의 nr_of_pages 값과 동일한 수의 필드가있는 Pages라는 테이블을 만드는 방법.

belongs_to :book 

및 예약 :

has_many :pages 
물론 페이지의

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

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

(도서 '필드의 값은 "new.html.erb"보기에서 사용자에 의해 도입)

두 모델에 서로 다른보기가있어 두 번째 테이블에 데이터를 채우는 방법은 무엇입니까? 당신이 페이지를 만들 때, 당신이 말할 수있는 그런

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

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

:

답변

1

페이지는 실제로 페이지의이 같은 콘텐츠가 될 것

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 루프를 사용하십시오.

관련 문제