Использование Acts As Votable для нескольких таблиц базы данных с Rails 5

Я использовал гем https://github.com/ryanto/acts_as_votable в качестве кнопки "Сохранить" для сообщений. . До сих пор все было хорошо. ????

Однако теперь я создал отдельный каркас (Статьи) и хотел добавить ту же кнопку «Сохранить». Таким образом, пользователи могут сохранять сообщения и статьи, а затем просматривать их в своих профилях.

Теперь у меня возникла проблема, так как некоторые записи статей имеют тот же идентификатор, что и записи сообщений. Кроме того, как мне теперь отображать сохраненные записи, поскольку я не знаю, какой идентификатор исходит от статьи или публикации. ????

Есть ли способ решить эту проблему с помощью Acts As Votable Gem?

Спасибо! ????


person Designer    schedule 12.06.2018    source источник


Ответы (1)


Текущая версия (0.12.0) act_as_voteable делает это из коробки. Модель Vote имеет столбец votable_type, который может быть ссылкой на несколько моделей.

 #<ActsAsVotable::Vote:0x00007f9f6558a9b0
id: 4,
votable_type: "Post",
votable_id: 1,
voter_type: "User",
voter_id: 2,
vote_flag: true,
vote_scope: "save",
vote_weight: 1,
created_at: Mon, 31 Dec 2018 13:39:34 UTC +00:00,
updated_at: Mon, 31 Dec 2018 13:39:34 UTC +00:00>,

#<ActsAsVotable::Vote:0x00007f9f6558a4d8
id: 5,
votable_type: "Article",
votable_id: 3,
voter_type: "User",
voter_id: 2,
vote_flag: true,
vote_scope: "article",
vote_weight: 1,
created_at: Tue, 01 Jan 2019 15:15:27 UTC +00:00,
updated_at: Tue, 01 Jan 2019 15:15:27 UTC +00:00>

Чтобы отобразить сохраненные записи, вы можете использовать область, например

@user.votes.for_type(Post)
@user.votes.for_type(Article)

Надеюсь, это ответит на ваш вопрос.

person InsolentWorm    schedule 01.01.2019