连接两个表以获取数据轨4 [英] join two tables to get data rails 4
本文介绍了连接两个表以获取数据轨4的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
class Guardian < ActiveRecord::Base
has_many :patients
has_one :user, as: :profile
accepts_nested_attributes_for :user
end
class User < ActiveRecord::Base
belongs_to :profile, :polymorphic => true
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
用户迁移
class DeviseCreateUsers < ActiveRecord::Migration
def change
create_table(:users) do |t|
## Database authenticatable
t.string :email, :null => false, :default => ""
t.string :encrypted_password, :null => false, :default => ""
t.string :username, :null => false
t.string :address
t.integer :age
t.string :gender
t.string :name
t.integer :profile_id
t.string :profile_type
## Recoverable
t.string :reset_password_token
t.datetime :reset_password_sent_at
## Rememberable
t.datetime :remember_created_at
## Trackable
t.integer :sign_in_count, :default => 0, :null => false
t.datetime :current_sign_in_at
t.datetime :last_sign_in_at
t.string :current_sign_in_ip
t.string :last_sign_in_ip
t.timestamps
end
add_index :users, :email, :unique => true
add_index :users, :reset_password_token, :unique => true
end
end
class DeviseCreateUsers < ActiveRecord::Migration
def change
create_table(:users) do |t|
## Database authenticatable
t.string :email, :null => false, :default => ""
t.string :encrypted_password, :null => false, :default => ""
t.string :username, :null => false
t.string :address
t.integer :age
t.string :gender
t.string :name
t.integer :profile_id
t.string :profile_type
## Recoverable
t.string :reset_password_token
t.datetime :reset_password_sent_at
## Rememberable
t.datetime :remember_created_at
## Trackable
t.integer :sign_in_count, :default => 0, :null => false
t.datetime :current_sign_in_at
t.datetime :last_sign_in_at
t.string :current_sign_in_ip
t.string :last_sign_in_ip
t.timestamps
end
add_index :users, :email, :unique => true
add_index :users, :reset_password_token, :unique => true
end
end
Guardian迁移 / p>
Guardian migration
class CreateGuardians < ActiveRecord::Migration
def change
create_table :guardians do |t|
t.string :family_name
t.timestamps
end
end
end
我想从单个变量中的用户表和监护表获取数据
监护人有一个用户和用户belongs_to监护人作为个人资料(多态)。我想从用户表和监护表获取数据,其中guardian_id = users.profile_id
I want to get data from user table and guardian table in a single variable guardian has one user and user belongs_to guardian as profile(polymorphic). i want to get data from user table and from guardian table where guardian_id=users.profile_id
推荐答案
尝试
Guardian.select("*").joins(:user)
编辑:
如果您有相同名称的列从加入你可以做
if you have columns with the same name from the join you can do
Guardian.select("guardians.family_name, guardians.id as g_id, users.id as u_id,
users.name, users.email, users.username, users.address, users.age,
users.gender").joins(:user).where(:users => {:u_id => @user_session.id})
这篇关于连接两个表以获取数据轨4的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文