我刚刚开始使用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调用移动到模型以获得最佳实践,还是使用上述方法也可以?
答案 0 :(得分:2)
您通常希望使用一个存储库模式,rails默认情况下会为我们提供活动记录。我会说这很好。如果你有更复杂的业务逻辑或从多个表中提取,那么我可能会把它移到它自己的类中。
答案 1 :(得分:2)
在我看来,你这样做的方式很好。控制器的工作是设置视图的数据,设置数据的一部分是从数据库中获取数据。
对于更复杂的数据库查询,您可以使用位于模型中的scope。这样,控制器就不会在模型上保留过多的DB查询逻辑。