希望是一个关于 Rails 最佳实践的简单问题。
让我们保持这个超级简单;假设我有一个具有 ID、描述和状态的任务模型。
在我的控制器中,我有一个返回所有任务的索引操作
def index
@tasks = Task.all
end
我的问题是,在我看来,假设我想根据任务的状态在单独的HTML 表格中显示任务。
最佳做法是什么?
a) 在索引动作中多次查询数据库,即
def index
@draft_tasks = Task.where(status: "Draft")
@approved_tasks = Task.where(status: "Approved")
@closed_tasks = Task.where(status: "Closed")
end
b) 查询数据库一次,在控制器动作中过滤
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) 别的?