在主页上显示多个模型的数据?

时间:2012-03-20 17:24:53

标签: ruby-on-rails ruby-on-rails-3

我想在我的主页上显示各种模型的数据摘要。有一个HomeController和一个home / home.html.erb但没有模型。我希望它就像在HomeController中为每个模型放置这样的东西一样简单,然后查看,但是不行,这不起作用!

控制器:

 def load_tracks
 @tracks = Track.all
 end

查看:

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

任何指针都会非常感激!

3 个答案:

答案 0 :(得分:3)

您的控制器必须如下所示:

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

你的观点现在可以是一样的。当rails看到请求时,它会查找具有该名称的操作。因此,当您尝试转到/homes/home时,它会进入Homes控制器以找到home操作但无法找到它,因此这可能是它无效的原因。< / p>

编辑反正你不应该有“HomesController”。 “PagesController”可能更有意义。查看Michael Hartl's RoR tutorial book on the subject

答案 1 :(得分:2)

假设您有两个模型,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>

答案 2 :(得分:0)

您可能还想查看Presenter。这是一种从不同模型中获取数据的好方法。

此处:http://railscasts.com/episodes?utf8=%E2%9C%93&search=presenterhttp://railscasts.com/episodes?utf8=%E2%9C%93&search=draper