Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 创建一个具有刺激反射的类似按钮 商务舱 类业务_Ruby On Rails_Stimulusjs_Stimulus Reflex - Fatal编程技术网

Ruby on rails 创建一个具有刺激反射的类似按钮 商务舱 类业务

Ruby on rails 创建一个具有刺激反射的类似按钮 商务舱 类业务,ruby-on-rails,stimulusjs,stimulus-reflex,Ruby On Rails,Stimulusjs,Stimulus Reflex,我需要帮助设置likeReflex控制器。 我希望登录用户喜欢业务并将它们添加到他们的用户中。喜欢这就是我在StimulusReflex中实现类似按钮的方式 在视图模板中: <%= button_tag "Like", data: {reflex: "click->Posts#like, id: @post.id} %> 喜欢#创建”,sgid:@post.to_sgid_param} 然后你有一个反射类,比如: class LikesRefl

我需要帮助设置likeReflex控制器。
我希望登录用户喜欢业务并将它们添加到他们的用户中。喜欢

这就是我在StimulusReflex中实现类似按钮的方式

在视图模板中:

<%= button_tag "Like", data: {reflex: "click->Posts#like, id: @post.id} %>
喜欢#创建”,sgid:@post.to_sgid_param}
然后你有一个反射类,比如:

class LikesReflex < ApplicationReflex
  def create
    likeable = GlobalID::Locator.locate_signed(element.dataset[:sgid])
    likeable.likes.find_or_create_by(user: current_user)
  end
end  
class-LikesReflex
我已经用你的代码编辑了这个问题。也许这会有帮助。我想我需要修改反射动作。谢谢
class User < ApplicationRecord
  has_many :likes
  has_many :businesses
  ....
<%= button_tag "Like", data: {reflex: "click->Likes#like", id: @business.id} %>


class LikesReflex < ApplicationReflex  
 def like    
 business = Business.find(element.dataset[:id])    
 business.likes.find_or_create_by(user: current_user)  
 ......
<%= 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 } 
class LikesReflex < ApplicationReflex
  def create
    likeable = GlobalID::Locator.locate_signed(element.dataset[:sgid])
    likeable.likes.find_or_create_by(user: current_user)
  end
end