Rails:得到belongs_toclass_name
Rails: get belongs_to class_name
我有一个基础 class Entry
,有很多不同的子class。如:
class Entry < ActiveRecord::Base
...
end
class UserEntry < Entry
belongs_to :target, class_name: User
end
有没有办法检索 UserEntry class 的 target
关联的 class_name
?它应该 return User
.
你做的是对的,除了class_name
应该是String
,而不是Class
class UserEntry < Entry
belongs_to :target, class_name: 'User'
end
确保在 belongs_to
中设置了 primary_key
和 foreign_key
,因为 AR 不够智能,无法将 user_id
映射到 target_id
我想我找到了我要找的东西:ActiveRecord::Reflection class 方法(以前的答案很有帮助,但没有真正回答问题)
我使用 reflect_on_association
class 方法获取我的 :target
关联的详细信息。所以为了得到我想要的东西,我做了:
UserEntry.reflect_on_association(:target).klass
,返回 User
class.
我有一个基础 class Entry
,有很多不同的子class。如:
class Entry < ActiveRecord::Base
...
end
class UserEntry < Entry
belongs_to :target, class_name: User
end
有没有办法检索 UserEntry class 的 target
关联的 class_name
?它应该 return User
.
你做的是对的,除了class_name
应该是String
,而不是Class
class UserEntry < Entry
belongs_to :target, class_name: 'User'
end
确保在 belongs_to
中设置了 primary_key
和 foreign_key
,因为 AR 不够智能,无法将 user_id
映射到 target_id
我想我找到了我要找的东西:ActiveRecord::Reflection class 方法(以前的答案很有帮助,但没有真正回答问题)
我使用 reflect_on_association
class 方法获取我的 :target
关联的详细信息。所以为了得到我想要的东西,我做了:
UserEntry.reflect_on_association(:target).klass
,返回 User
class.