将image_tag转换为转到destroy路径的链接

时间:2017-12-05 04:01:54

标签: ruby-on-rails ruby

我想将这行代码转换为一个链接,该链接转到我的路由表中的destroy路由。按下此图片时,它将删除当前照片。

<%= image_tag @user.avatar.avatarpic %>

路线如下:

user_avatar DELETE /users/:user_id/avatars/:id(.:format) avatars#destroy

头像控制器如下:

class AvatarsController < ApplicationController

  def create
    @user = User.find(params[:user_id])
    @avatar = Avatar.new(avatar_params)
    @avatar.user = @user
    @avatar.save
    # Three lines above can be replaced with 
    # @user.create_avatar(params)
    redirect_to user_path(@user)
  end

private

def avatar_params
  params.require(:avatar).permit(:avatarpic)
end

end

目前我有一个if / else语句,如果头像照片不可用,将显示默认图片:

<% if @user.avatar.present? %>
  <%= image_tag @user.avatar.avatarpic %>
<% else %>
  <%= image_tag 'user.png' %>
  <a href="#" class="add-image" data-toggle="modal" data-
  target="#avatarpic">
    Add a Picture
  </a>
<% end %>

我还想在鼠标悬停在当前头像照片上时显示一条消息。它将说明&#34;上传不同的图像&#34;的效果。按下后,应该有一个警告,询问用户&#34;您确定要删除此图像吗?&#34;。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

我不在我的电脑前,但这应该有效:

<%= link_to destroy_path, method: :delete, data: { confirm: 'Are you sure?' } do %>
   <%= image_tag @user.avatar.avatarpic %>
<% end %>

请尽量让我知道。

答案 1 :(得分:0)

按照上面给出的路线,请尝试:

<%= link_to user_avatar_path, method: :delete, data: { confirm: 'Are you sure' } do %>
  <%= image_tag @user.avatar.avatarpic %>
<% end %>