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

它只是检查用户是否登录并找到用户......

我应该将数据库调用移动到模型以获得最佳实践还是使用上述方法也可以?

4

2 回答 2

2

您通常希望使用 rails 默认为我们提供的带有活动记录的存储库模式。我会说这完全没问题。如果您有更复杂的业务逻辑或从多个表中提取,那么我可能会将它移到它自己的类中。

于 2012-07-11T14:34:59.053 回答
2

在我看来,你这样做的方式很好。控制器的工作是为视图设置数据,设置数据的一部分是从数据库中获取数据。

对于更复杂的数据库查询,您可以使用位于模型中的范围。这样控制器就不会在模型上保存太多的数据库查询逻辑。

于 2012-07-11T14:35:18.097 回答