Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/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 4 如何从单个链接执行多个操作_Ruby On Rails 4_Link To - Fatal编程技术网

Ruby on rails 4 如何从单个链接执行多个操作

Ruby on rails 4 如何从单个链接执行多个操作,ruby-on-rails-4,link-to,Ruby On Rails 4,Link To,我有一个横幅图像,我想链接到一个外部站点,同时将用户点击记录到点击表中,并在用户表中向该用户的点添加一个点 我怎样才能使链接到图像来实现这一点 现在,我的代码在下面,但它没有重定向,因为我将外部URL放在控制器中。它也不会调用用户控制器来记录点,因为我不知道如何使用“link_to..do end”调用多个操作: index.html.haml 点击控制器 用户控制器 这可以帮助你。只需根据需要更改代码 = link_to image_tag("http://res.cloudinary.com

我有一个横幅图像,我想链接到一个外部站点,同时将用户点击记录到点击表中,并在用户表中向该用户的点添加一个点

我怎样才能使链接到图像来实现这一点

现在,我的代码在下面,但它没有重定向,因为我将外部URL放在控制器中。它也不会调用用户控制器来记录点,因为我不知道如何使用“link_to..do end”调用多个操作:

index.html.haml 点击控制器 用户控制器
这可以帮助你。只需根据需要更改代码

= link_to image_tag("http://res.cloudinary.com/../image.jpg", size: "100%", class: "img-fluid"), 
          "your/url/path", id: current_user.id, image_source: "abc", 
          method: :post, remote: true

一次单击链接不能执行多个操作。无论如何,本机单击处理都不会

这里有两种方法:

  • 用javascript处理你的横幅上的点击。拦截事件,取消其传播(
    e.preventDefault()
    ),使浏览器不跟随链接。然后通过jquery或其他方式手动调用必要的URL来执行操作。注册完单击并添加点后,可以通过分配
    window.location.href
    导航到所需页面

  • 在服务器上的同一个操作中处理所有单击和点数。在该操作结束时,重定向


  • 我会选择选项2。

    在这种情况下,您可以使用java脚本,只需通过link\u调用app method,然后为该link\u事件创建一个js事件,并根据该事件打开指向新选项卡的外部链接
    def create
      @click = current_user.clicks.create(user_id: params[:id], image_source: params[:image_source])
    if @click.save
      if params[:image_source] == 'abc'        
        redirect_to abc.com
    
    def add_point
      @user.increment!(:point)
    
    = link_to image_tag("http://res.cloudinary.com/../image.jpg", size: "100%", class: "img-fluid"), 
              "your/url/path", id: current_user.id, image_source: "abc", 
              method: :post, remote: true