我想要链接到外部网站的横幅图片,同时将用户点击记录到点击表中,并在用户表格中为该用户的点添加一个点。
如何让link_to图像执行此操作?
目前,我的代码在下面,但它没有重定向,因为我将外部URL放在控制器中。此外,它不会调用用户控制器来记录点数,因为我不知道如何使用“link_to ... do end”调用多个动作:
= link_to image_tag("http://res.cloudinary.com/../image.jpg", size: "100%", class: "img-fluid"), clicks_path(id: current_user.id, image_source: "abc"), method: :post, remote: true
# user_add_point_path(point: 2)
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)
答案 0 :(得分:0)
每个链接点击您无法执行多项操作。无论如何都不是本机点击处理。
这里有两种方法:
使用javascript处理您的横幅广告。拦截事件,取消其传播(onButtonClick _
),以便浏览器不会跟踪链接。然后通过使用jquery或其他东西手动调用必要的URL来执行您的操作。完成点击和添加积分后,例如,通过指定e.preventDefault()
导航到所需的页面。
处理服务器上同一操作中的所有点击和点记帐。在该操作结束时,重定向。
我选择2。
答案 1 :(得分:-1)
这可以帮到你。只需根据
更改您的代码即可= 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