Rails. Фильтр и поиск по ассоциациям?

Доброго дня!

Пишу первый проект на Rails, использую Rails Admin. Есть две связанные модели. Не могу разобраться каким образом можно сортировать/фильтровать результаты по атрибутам ассоциации.

Вот краткий код моделей.
#users.rb
class User < ActiveRecord::Base
  attr_accessible :role_id, :login, :name, :password, :privileged, :birthday, :region_id, :phone_number,
  has_many :points
end

#point.rb
class Point < ActiveRecord::Base
   attr_accessible :points, :user_id
   belongs_to :user
   
   RailsAdmin.config.model Point do
     list do
       field :user_phone_number do
         searchable user: :phone_number
         sortable :user_phone_number

         def value
           bindings[:object].user.phone_number
         end
       end

       field :user_id do
       end
	   
	   field :points do
	   end
     end
   end
end


Поле :user_phone_number выводится, но не сортируется. Ошибка вида:
Mysql2::Error: Unknown column 'points.user_phone_number' in 'order clause': SELECT `points`.* FROM `points` ORDER BY points.user_phone_number asc LIMIT 20 OFFSET 0

Собственно, вопрос состоит в том, как мне фильтровать по любому полю из Users.

Заранее благодарен.
  • Вопрос задан
  • 3361 просмотр
Пригласить эксперта
Ответы на вопрос 2
int03e
@int03e
Я не знаком с Rails Admin гемом, но у Вас ошибка из-за несуществующего поля user_phone_number в базе данных. Добавьте это поле в БД с помощью миграции.
rails g migration add_user_phone_number_to_points user_phone_number:string
rake db:migrate
not null, валидации на уровне модели и все прочее по вкусу.
Ответ написан
Piranis
@Piranis
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы