0

こんにちは私は現在、ユーザー、アルバム、写真を使ってアプリを作成しています。写真をアップロードするときに、作成アクションでAJAXを機能させることができましたが、削除でAJAXを機能させることができません。代わりに、写真の空のショーページにリダイレクトされます。誰かが私にいくつかのガイダンスを与えることができますか?

写真コントローラー:

def destroy
  @user = User.find(params[:user_id])
  @album = @user.albums.find(params[:album_id])
  @photo = @album.photos.find(params[:id])
  # @photo.destroy
  flash[:success] = "Photo successfully deleted."
  respond_to do |format|
    if @photo.destroy
      format.js
      # format.json { render json: @photo, status: :created, location: @photo}
      # redirect_to user_album_path(@user, @album)
    end
  end
end

destroy.js.erb(私はこの権利を持っているはずですか?)

$('.destroypicswrapper').remove(".<%= @photo.avatar.url %>");

_photodestroy.html.erb部分:

<div class="picthumb <%= photo.avatar.url %>">
    <%= link_to image_tag(photo.avatar.url ? photo.avatar.url(:small) : @album.name), root_url %>
    <br>
    <%= link_to "Delete", user_album_photo_path(@user, @album, photo), :remote => true, method: :delete, data: { confirm: "Are you sure? "} %>
</div>

そして最後に、削除が最初に行われているalbums / edit.html.erbページ:

<% provide(:title, "Edit album") %>

<%= render 'form' %>

<div class="destroypicswrapper">
    <% if @album.photos.any? %>
        <%= render :partial => 'photodestroy', :collection => @album.photos, :as => :photo %>
    <% end %> 
</div>
4

1 に答える 1

1

画像の完全な URL を div のクラスとしてレンダリングしたくないと思います。また、Jquery が間違っています。次のようなことを試してください:

destroy.js.erb

$('.destroypicswrapper > #photo_<%= @photo.id %>').remove();

_photodestroy.html.erb を次のように調整します。

<div class="picthumb" id="photo_<%= photo.id %>">
于 2012-10-22T00:29:31.943 に答える