gpt4 book ai didi

sql - ActiveRecord 连接

转载 作者:行者123 更新时间:2023-12-04 22:11:30 25 4
gpt4 key购买 nike

好的,所以,如果我执行 User.joins(:session_users),我只会获得用户表的属性。

如何以 ActiveRecord 方式获取两个表的属性,即,不是 SQL?

编辑一个

好的,根据第一个答案,我正在尝试显示它。

所以,这是在Users Controller中写的方法

def blah 
@users = User.includes(:session_users)
@users.each do |user|
user.session_users
end
end

然后我在用户 View 中有这个 blah.html.erb

 <%= @users.session_users %> 

这在路由部分:

  match "/users/blah" => "users#blah"

最佳答案

我认为您需要includes 而不是joins。参见 http://railscasts.com/episodes/181-include-vs-joins获取更多信息。这应该为两者获取列,

users = User.includes(:session_users)
users.each do |user|
user.session_users
end

请注意,这仍然会执行 2 个 SQL 查询。

编辑

更新后的答案假定 user has_many :session_users

路线:

# config/routes.rb

get '/users/blah' => 'users#blah'

Controller :

# app/controllers/users_controller.rb

class UsersController < ApplicationController
def blah
@users = User.includes(:session_users)
end
end

查看:

# app/views/users/blah.html.erb

<% @users.each do |user| %>

<%= user.name %> // assumes user has a name attribute

<% user.session_users.each do |session_user| %>
<%= session_user.attributes %> // prints all the attributes
<%= session_user.created_at %> // assumes the user has a created_at attribute
<% end %>

<% end %>

关于sql - ActiveRecord 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22900272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com