うまくいけば、レールのベストプラクティスに関する簡単な質問です。
これは非常に単純にしましょう。ID、説明、およびステータスを持つタスク モデルがあるとします。
私のコントローラーには、すべてのタスクを返すインデックスアクションがあります
def index
@tasks = Task.all
end
私の質問は、私の見解では、ステータスに応じてタスクを個別の HTML テーブルに表示したいとします。
ベストプラクティスは何ですか?
a) index アクションでデータベースを複数回クエリします。
def index
@draft_tasks = Task.where(status: "Draft")
@approved_tasks = Task.where(status: "Approved")
@closed_tasks = Task.where(status: "Closed")
end
b) データベースに 1 回クエリを実行し、コントローラー アクションでフィルター処理する
def index
tasks = Task.all
@draft_tasks = tasks.#somethinghere
@approved_tasks = tasks.#somethinghere
@closed_tasks = tasks.#somethinghere
end
c) ビューでフィルター処理する
<% @tasks.each do |k, v| %>
<% some if statement searching for the status I want %>
# Some code to output the table
<%end%>
<%end%>
また
d) 他に何かありますか?