ruby-on-rails - ruby on rails 我应该从 Controller 查询数据库吗

标签 ruby-on-rails database activerecord

我刚刚开始使用 Ruby on Rails,我不确定应该如何查询数据库以获取数据、添加数据或编辑数据...

是从 Controller 中找到用户更好还是将查询添加到模型中更好?

目前,我的用户主页 Controller 看起来像这样,具有一些简单的功能

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

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

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

最佳答案

我认为您的做法很好。 Controller 的工作是为 View 设置数据,设置数据的一部分是从数据库中获取数据。

对于更复杂的数据库查询,您可以使用 scope它们位于模型中。这样 Controller 就不会在模型上保留太多的数据库查询逻辑。

关于ruby-on-rails - ruby on rails 我应该从 Controller 查询数据库吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11434947/

相关文章:

ruby-on-rails - ActiveRecord 如何在验证中实现 `:if => ...`

ruby-on-rails - :default => 0 and :null => false differ for integer fields in migrations? 怎么办

php - 如何删除wordpress数据库中的现有表

mysql - 根据 has_many 关系按计数排序

ruby-on-rails - 未定义的方法 `spec' #<ActiveRecord::ConnectionAdapters::NullPool:0x00007fd44f8ab300> - Rails 6 schema:load

php - mysql从用户表中连续加入2个user_ids

ruby-on-rails - 如何/最有效的方式向许多用户发送消息?

ruby-on-rails - Nginx 无法将请求协议(protocol)正确转发到上游

php - 为我的 URL 缩短器添加自定义 URL 支持

mysql - 首先 Group By 按顺序检索所有行?