私は実際にこのモデルを持っています:
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を追加します。
代わりにアクティブなレコードオブジェクトを取得する方法はありますか?
ロールモデルにはbelongs_toがなく、wispモデルにはhas_many:rolesがありません。これは、柔軟性などのために行われたと思います(作業中のアプリケーションは開発していません)。
編集:実装されたソリューション
ここに実装されたソリューション:https ://github.com/nemesisdesign/OpenWISP-Geographic-Monitoring/blob/287861d95fffde35d78b76ca1e529c21b0f3a54b/app/models/role.rb#L25@house9 に感謝