假设我有三节课。用户,UserOrganisation,Organizations。
用户拥有其用户ID,加密密码等。
UserOrganisation将organisationid作为外键,userid也作为外键。组织有id,组织名称,地址等。
假设我有一个变量,其中包含所有UserOrganisation的数据。
@user = User.where(email: "test@test.com")
@userOrganisation = @user.userOrganisation
如何从@userOrganisation获取组织ID并使用ID从组织表中获取名称?
我想将组织名称呈现为JSON
答案 0 :(得分:1)
class User < ApplicationRecord
has_many :user_organizations
has_many :organizations, through: :user_organizations
end
# rails g model user_organization user:belongs_to organization:belongs_to
class UserOrganization < ApplicationRecord
belongs_to :user
belongs_to :organization
end
class Organization < ApplicationRecord
has_many :user_organizations
has_many :organizations, through: :user_organizations
end
这会在User
和Organization
之间以user_organizations
作为联接表创建a many to many association。请注意,列,方法名称和关联(几乎除了类之外的所有内容)都应该是snake_case
。
要获得组织,用户是您可以使用的成员:
user.organisations
Rails将自动加入user_organizations
表格。
如果您想要一个包含每个组织的ID和名称的数组:
user.organisations.pluck(:id, :name)
答案 1 :(得分:0)
@userOrganisation.reflections['assigned_to'].options[:foreign_key]
如果你想要id,这应该得到id,但正如一条评论所提到的,你应该设置正确的关联并以这种方式处理