2012-03-20 67 views
1

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

控制器:

def load_tracks 
@tracks = Track.all 
end 

查看:

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

任何指针将非常感激!

回答

3

你的控制器将有看起来像这样:

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

而且您认为现在可以是相同的。当rails看到一个请求时,它会查找具有该名称的操作。所以当你试图去/homes/home它进入Homes控制器找到一个home行动,并找不到它,所以这可能是为什么它不起作用。

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

+0

此外,请确保您配置的config/routes.rb中您的路线。 即)匹配“家庭/家庭”=>“家庭#家庭”,:as =>“homes_home” – niiru 2012-03-20 17:44:21

+0

是的,很好的补充,niiru。 – MrDanA 2012-03-20 17:45:41

+0

太好了,谢谢。我不得不将上面的def改为索引,但是之后创建了一些方法来加载我需要的数据并将它们输入到def索引中。 – Raoot 2012-03-20 17:49:54

2

假设您有两种模型,即轨道和播放列表,并且您希望在主控制器的索引页上显示有关它们的信息。在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

MrDanA也打败了我:-) – 2012-03-20 18:07:00

相关问题