1

インデックスページにスコープを追加して、ロールの関連付けに含まれるものをフィルタリングできるようにしたいだけです.RoleとLegalCaseには、私が試した多対多の関連付けがlegal_casesありますspecific role

ActiveAdmin.register LegalCase do
  scope :film_maker, joins(:roles).where('roles.name = ?', "Film Maker")
end

しかし、私はこのエラーが発生しました

undefined method `joins' for #<ActiveAdmin::ResourceDSL:0x9ca28f4>

参加する代わりに、ここで何を使用すればよいですか?

4

3 に答える 3

1

私は自分のアプリケーションでこれを行っている同様のケースを持っていました

ActiveAdmin.register Restaurant do
  scope("All"){|scope| scope.order("created_at desc")}

    Cuisine.all.each do |c|
      scope(c.name) { |scope| scope.joins(:cuisines).where("cuisines.id=?",c.id)}
    end
end
于 2016-06-28T06:50:23.297 に答える
0

私はこのようなものを使用しました

ActiveAdmin.register LegalCase do

  controller do
    def scoped_collection
      end_of_association_chain.joins("left join users on users.id = bookings.user_id").select('bookings.*, users.*').order('users.name asc')
    end
  end
end
于 2012-09-17T04:31:10.200 に答える
0

フィルタリングしているモデルにスコープを追加します。

class LegalCase < ActiveRecord::Base

  ...

  scope :film_makers, -> { joins(:roles).where(roles: { name: 'Film Maker' }) }
end
于 2013-07-19T18:14:08.420 に答える