如何将model.rb中的数据呈现到index.html文件中?

时间:2011-09-07 22:27:45

标签: html ruby-on-rails ruby api twitter

我正在构建我的第一个rails应用程序,我在/ public中设置我的HTML和CSS文件,在/ models中设置models.rb我的代码。

现在代码是一个Def,它搜索在models.rb文件中提到我的5条最新推文。

我想拍这些5条推文并以某种方式设置它们。我从未将数据从一个文件访问到另一个文件,因此不太确定如何将这些推文显示在index.html文件中。

任何帮助都非常感激。

require 'rubygems'
require 'twitter'

def search
  search = Twitter::Search.new
  search.containing("@twitter").result_type("recent").per_page(5).each do |r|
     puts "#{r.from_user}: #{r.text}"
  end
end

search #calls search function

这是models.rb中的代码,需要在index.html中显示

1 个答案:

答案 0 :(得分:2)

首先,您要正确整理文件。您没有提到控制器,但是您希望用户与之交互的每种“事物”都需要一个控制器。请参阅:http://guides.rubyonrails.org/action_controller_overview.html

你想要一个像这样的文件结构:

/public/stylesheets/whatever.css中的CSS /app/views/tweets/index.html.erb

中的HTML

请记住,我不熟悉您的特定数据库结构,但在tweets控制器(存储在/app/controllers/tweets_controller.rb)中,您理想的是希望能够执行此操作:

def index
    @tweets = @user.tweets.order("tweets.created_at DESC").limit(5)
end

然后在index.html.erb

<% @tweets.each do |tweet| %>
    <div class="tweet">
        <%= @tweet.text %>
    </div>
<% end %>

这是我可以从您的问题中提供的最详细信息 - 您应该阅读有关rails中的MVC结构,最重要的是,花点时间让您的项目开始/组织得很好。它将来会为你节省很多麻烦!

祝你好运。