Как да поправя Ransack недефиниран метод _eq, когато използвате ActiveAdmin с :through отношения във вашия модел?

Имам приложение Rails 4.0.1, използващо gems activeadmin 1.0.0.pre и ransack 1.1.0.

Използвайки ActiveAdmin, имам много грешки като тази:

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)

Има модел "_eq" за всеки недефиниран метод:

aws_instance_type_clients_id_eq
user_roles_id_eq

Някаква идея ?


person Eric Lavoie    schedule 11.02.2014    source източник


Отговори (1)


Намерих отговора точно тук: недефиниран метод `users_user_id_eq' за Ransack::Search

Тук също има публикация: странна грешка се появи при активен администратор това изглежда е същото описание на проблема.

Изглежда, че Ransack (използван от ActiveAdmin) не харесва has many .. :through връзки.

Пример:

Ако имате user.rb това has many :roles, :through => :user_roles

Това ще ви даде грешката: undefined method user_roles_id_eq

За да поправите (не наистина да поправите... но избегнете получаването на грешка) грешката, редактирайте вашия файл "ActiveAdmin.register User" и добавете: remove_filter :user_roles

person Eric Lavoie    schedule 11.02.2014
comment
По това време (няколко години) не можах да го поправя наистина. - person Eric Lavoie; 08.11.2017