Создайте кнопку "Нравится" с помощью Stimulus Reflex
есть ли какое-нибудь руководство о том, как создать кнопку «Нравится» со стимулом или стимульным рефлексом. Что-то для замены большинства драгоценных камней. Спасибо
1 ответ
Вот как я бы реализовал кнопку «Нравится» в StimulusReflex.
В шаблоне представления:
<%= button_tag "Like", data: {reflex: "click->Posts#like, id: @post.id} %>
В вашем классе рефлексов:
class PostsReflex < ApplicationReflex
def like
post = Post.find(element.dataset[:id])
post.likes.find_or_create_by(user: current_user)
end
end
Распространенный шаблон , который более безопасен, - использовать подписанные глобальные идентификаторы , тогда вы можете создать что-то, что больше похоже на проблему:
<%= button_tag "Like", data: {reflex: "click->Likes#create", sgid: @post.to_sgid_param }
Тогда у вас есть класс Reflex, например:
class LikesReflex < ApplicationReflex
def create
likeable = GlobalID::Locator.locate_signed(element.dataset[:sgid])
likeable.likes.find_or_create_by(user: current_user)
end
end