Отображение данных из нескольких моделей на домашней странице? - PullRequest
1 голос
/ 20 марта 2012

Я бы хотел отобразить сводную информацию о различных моделях на моей домашней странице.Есть HomeController и home / home.html.erb, но нет модели.Я надеялся, что это будет так же просто, как поместить что-то подобное для каждой модели в HomeController, а затем просмотреть, но нет, это не работает!

Контроллер:

 def load_tracks
 @tracks = Track.all
 end

Просмотр:

<% @tracks.each do |track| %>
<%= track.name %> - <%= track.isrc %>
<% end %>   

Любые указатели будут по-настоящему оценены!

Ответы [ 3 ]

3 голосов
/ 20 марта 2012

Ваш контроллер должен выглядеть так:

class HomeController < ApplicationController
    def home
        @tracks = Track.all # or this could come from a method
    end
end

И ваш взгляд теперь может быть таким же. Когда rails видит запрос, он ищет действие с таким именем. Поэтому, когда вы попытались перейти на /homes/home, он вошел в контроллер Homes, чтобы найти действие home, и не смог его найти, поэтому, вероятно, он и не сработал.

РЕДАКТИРОВАТЬ Вы не должны иметь "HomesController" в любом случае. «PagesController» может иметь больше смысла. Прочтите Учебное пособие Майкла Хартла по RoR по этому предмету .

2 голосов
/ 20 марта 2012

Допустим, у вас есть две модели, Track и Playlist, и вы хотите отобразить информацию о них на главной странице контроллера Home.В app/view/controllers/home_controller.rb

def index
  @tracks = Track.all
  @playlists = Playlist.all
end

затем в представлении app/view/home/index.html.erb

<h1>Tracks and Playlists R Us</h1>
<p><%= "We have #{@tracks.count} tracks and #{@playlist.count} playlists." %></p>
0 голосов
/ 20 марта 2012

Вы также можете взглянуть на Presenter. Это хороший и чистый способ получения данных из разных моделей.

Здесь: http://railscasts.com/episodes?utf8=%E2%9C%93&search=presenter и http://railscasts.com/episodes?utf8=%E2%9C%93&search=draper

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