2014-02-11 7 views
7

Ich habe eine Rails 4.0.1-Anwendung, mit Gems ActiveAdmin 1.0.0.pre und Ransack 1.1.0.Wie behebt Ransack undefined Methode "_eq", wenn Sie ActiveAdmin mit ": through" Beziehungen in Ihrem Modell verwenden?

Mit ActiveAdmin, ich habe viele Fehler wie diese:

NoMethodError in Admin::MyModel#action 
Showing [...]/views/active_admin/resource/action.html.arb where line #1 raised: 

undefined method `applied_boundaries_id_eq' for #<Ransack::Search:0x0..> 
Extracted source (around line #1): insert_tag renderer_for(:index) 

Es ist ein Muster "_eq" für jedes nicht definierte Methode:

aws_instance_type_clients_id_eq 
user_roles_id_eq 

Jede Idee?

Antwort

13

fand ich die Antwort hier: undefined method `users_user_id_eq' for Ransack::Search

Es gibt auch einen Beitrag hier ist: weird error popped up with active admin, die die gleiche Problembeschreibung aussieht.

Es scheint, dass Ransack (von ActiveAdmin verwendet) has many .. :through Beziehungen nicht mögen.

Beispiel:

Wenn Sie ein user.rb dass has many :roles, :through => :user_roles

Diese Sie den Fehler geben wird: undefined method user_roles_id_eq

zu beheben (nicht wirklich beheben .. aber vermeiden, einen Fehler zu erhalten), um den Bug Bearbeiten Sie die Datei "ActiveAdmin.register User" und fügen Sie Folgendes hinzu: remove_filter :user_roles

+0

Wie funktioniert der 'has_many'-Filter? – emaillenin

+0

Zu der Zeit (einige Jahre) konnte ich es nicht wirklich reparieren. –