У меня есть три модели, а именно: Уведомления, устройства и пользователи. Уведомление имеет registration_ids
, который отображается на поле приборов token
. У устройств есть поле user_id
, которое отображается в поле модели пользователя id
.Создать ассоциацию Rails с разными именами столбцов
Как создать ассоциацию has_many_through или has_and_belongs_to_many из модели Notification, чтобы извлечь пользователя, соответствующего этому уведомлению.
Кроме того, я создал эту ассоциацию в Notifications класса belongs_to :device, :primary_key => 'registration_ids', :foreign_key => 'token'
и этот в классе устройств has_many :notifications, :primary_key => 'token', :foreign_key => 'registration_ids'
класс устройства способен распознавать класс уведомления, в то время как класс уведомления не в состоянии распознать класс устройств
После кусок моего кода из файла notification.rb
class Notification < Rpush::Gcm::Notification
self.inheritance_column = nil
belongs_to :device, :foreign_key => 'registration_ids', :primary_key => 'token'
delegate :user, to: :device #-> notification.user.name
end
получает следующее сообщение об ошибке '2.2.1:.. 071> Notification.last.device Уведомление нагрузки (0.4ms) ВЫБОР "rpush_notifications" * FROM "rpush_notifications" ORDER BY "rpush_notifications" "Идентификатор" по убыванию ПРЕДЕЛ 1 TypeError : невозможно передать массив в строку ' – vipin8169
Интересно. У вас есть какой-то контекст? Я не знаю, как вы добираетесь до этого результата. Можете ли вы показать мне журнал «console» для запроса как в виде скриншота? –
вот скриншоты с консоли - http://postimg.org/image/r9wrr3vhx/ – vipin8169