面试问题: -
您好 我是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?
有人可以帮我这个吗?
答案 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