0

インタビューの質問:-

こんにちは、私は 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

すべてのブログを表示するテーブルを作成するとします。テーブルの列は、ブログのタイトル、著者名、ブログの画像です。

このテーブルを表示するために必要な @blogs のリストを取得する ActiveRecord クエリを作成します。カバーの下no more then 3 SQL statementsが生成されるようにこれを行うことはできますか? 1以下はどうですか?

誰かがこれで私を助けることができますか?

4

2 に答える 2

2

次のクエリを使用して、すべてのブログを取得できます。

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

ビューで..
@blogs.each do |ブログ|
blog.title
blog.author.name
blog.image.image_path

終わり

于 2013-03-28T05:19:27.230 に答える
1

あなたの質問を正しく理解できれば幸いですが、すべてのブログのリストを取得するには、次のようにします。

@blogs = Blog.all

Railsコンソールでそのようなことを試すことができ、対応するSQLクエリが表示されます.

SELECT "blogs".* FROM "blogs"

Rails サイトに Active Record のクエリに関するガイドがあります。ご覧になりたい場合は、次のURL をご覧ください。

于 2013-03-28T05:08:56.620 に答える