我实际上有这个模型:
class Role < ActiveRecord::Base
acts_as_authorization_role
def self.all_join_wisp
self.connection.select_all("SELECT roles.*, wisps.name AS wisp_name FROM roles LEFT JOIN wisps ON wisps.id = roles.authorizable_id")
end
end
all_join_wisp 方法几乎可以满足我的要求,它添加了 wisp_name 字段,除了它返回一个散列而不是一个活动记录对象。
有没有办法代替检索活动记录对象?
Role 模型没有 belongs_to 并且 wisp 模型没有 has_many :roles ,我猜这是为了灵活性或其他原因(我没有开发我正在开发的应用程序)。
编辑:解决方案已实施
此处实施的解决方案:https ://github.com/nemesisdesign/OpenWISP-Geographic-Monitoring/blob/287861d95fffde35d78b76ca1e529c21b0f3a54b/app/models/role.rb#L25 感谢@house9