Относительно ошибки в контроллере, когда я передаю массив - PullRequest
0 голосов
/ 16 февраля 2011

Я новичок в Ruby on Rails. Вот моя проблема:

@chapters = Chapter.all
@sections = Section.all
@selected_chapter = @chapter[0]

Сейчас это читает первую запись, но я хочу передать идентификатор, чтобы @selected_chapter мог прочитать все главы, которые у меня есть.

Вот мой вид / индекс:

   <div id="container">
        <%=@selected_chapter.name%> <br/>
      <% @selected_chapter.sections.each{|section| %>
        <%=section.name%>  <br/>
        <% section.topics.each{|topic| %>
            <%=topic.name%><br/>
            <%=topic.description%><br/><br/>
         <% } %>
    <%} %>
   </div>

Этот код работает, но только когда я делаю @selected_chapters = @chapter [0].

Любая помощь ???

1 Ответ

0 голосов
/ 16 февраля 2011

Если вы хотите отобразить все главы и все разделы для всех глав, я думаю, что вы ищете это:

@chapters = Chapter.all

По вашему мнению, вы можете вложить петли так:

<% @chapters.each do |chapter| %>
  <div id="container">
    <%= chapter.name %><br/>
    <% chapter.sections.each do |section| %>
      <%= section.name %><br/>
      <% section.topics.each do |topic| %>
        <%= topic.name %><br/>
        <%= topic.description %><br/>
        <br/>
      <% end %>
    <% end %>
  </div>
<% end %>

Если вы хотите прочитать только определенную главу, вы можете сделать следующее:

@selected_chapter = Chapter.find(id)

Где id - это идентификатор главы, которую вы хотите найти. Имейте в виду, это не обязательно означает, что id = 10 вернет десятую главу. Если вы хотите вернуть определенно пронумерованную главу, вы можете использовать лимит и смещение. Например, в Rails 3 вы можете получить одну запись, начиная с записи 10, выполнив следующее:

Chapter.limit(1).offset(10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...