1

Ruby on Railsを使い始めたばかりですが、データを取得したり、データを追加したり、データを編集したりするために、データベースへのクエリをどのように実行すればよいかわかりません...

たとえば、コントローラーからユーザーを見つけるのが良いですか、それともモデルにクエリを追加するのが良いですか?

現在、私のユーザーホームページコントローラーは、いくつかの簡単な機能を備えたこのように見えます

class HomeController < ApplicationController

  #get current_user variable
  helper_method :current_user

  def index
    if user_signed_in?
        @user = User.find_by_id(current_user.id)
    else
        render_404
    end
  end
end

ユーザーがログインしているかどうかをチェックし、ユーザーを見つけるだけです...

ベストプラクティスのためにdb呼び出しをモデルに移動する必要がありますか、それとも上記の方法を使用しても問題ありませんか?

4

2 に答える 2

2

通常、railsがデフォルトでアクティブレコードで提供するリポジトリパターンを使用する必要があります。それはまったく問題ないと思います。より複雑なビジネスロジックがある場合、または複数のテーブルからプルしている場合は、おそらくそれを独自のクラスに移動します。

于 2012-07-11T14:34:59.053 に答える
2

私の意見では、あなたのやり方は問題ありません。コントローラの仕事はビューのデータを設定することであり、データの設定の一部はDBからデータをフェッチすることです。

より複雑なDBクエリの場合は、モデルにあるスコープを使用できます。このようにして、コントローラーはモデル上のDBクエリのロジックをあまり保持しません。

于 2012-07-11T14:35:18.097 に答える