Използването на Acts As Votable за множество таблици на база данни с Rails 5

Използвам https://github.com/ryanto/acts_as_votable gem като бутон Запазване за публикации . Досега всичко беше наред. ????

Сега обаче създадох отделно скеле (статии) и исках да добавя същия бутон Запазване. Така потребителите могат да запазват публикации и статии, след което да преглеждат в своите профили.

Сега имам проблем, тъй като някои записи на статии имат същия идентификатор като записите на публикация. Освен това как мога дори да покажа Запазени записи сега, тъй като не знам какъв идентификатор идва от статия или публикация. ????

Има ли някакъв начин да се реши това с Acts As Votable Gem?

Благодаря ти! ????


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


Отговори (1)


Текущата версия (0.12.0) на acts_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