Использование Acts As Votable для нескольких таблиц базы данных с Rails 5 - PullRequest
0 голосов
/ 12 июня 2018

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

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

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

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

Спасибо!?

1 Ответ

0 голосов
/ 01 января 2019

Текущая версия (0.12.0) act_as_voteable делает это из коробки.Модель голосования имеет столбец 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)

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

...