创建一个显示所有博客的表格

时间:2013-03-28 04:56:09

标签: ruby-on-rails ruby

面试问题: -

您好    我是rails的初学者。我去接受采访,并被问到以下问题: -

假设您拥有以下一组模型和关系

class Author < ActiveRecord::Base
   has_many :blogs
   # Properties:  name
end

class Blog << ActiveRecord::Base
  belongs_to :author
  has_one :image
  # Properties:  title, body
end

class Image << ActiveRecord::Base
  belongs_to :blog
  # Properties:  image_file_path
end

假设您要创建一个显示所有博客的表格。表格的列是博客标题,作者姓名和博客图片。

编写一个ActiveRecord查询,该查询将提取显示此表所需的@blog列表。你能这样做,以便生成封面no more then 3 SQL statements吗?怎么样不超过1?

有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:2)

您可以使用以下查询来获取所有博客。

@blogs = Blog.find(:all,include :: project,include :: image)

在视图中..
   @ blogs.each do | blog |
 blog.title
 blog.author.name
 blog.image.image_path

答案 1 :(得分:1)

希望我能正确理解你的问题,但要获得所有博客的清单,你就会这样做:

@blogs = Blog.all

你可以在Rails控制台上尝试类似的东西,它会显示相应的SQL查询,这只是

SELECT "blogs".* FROM "blogs"

Rails网站上有一个指南,如果您想查看一下,可以查看Active Record查询:http://guides.rubyonrails.org/active_record_querying.html#retrieving-multiple-objects