我的书签删除方法似乎不起作用,这是rails 7的问题还是我做错了什么。它声明没有Get方法。我使用的是turbo-pack方法而不是webpack方法
以下是所有相关文件
routes.rb
Rails.application.routes.draw do
root 'lists#index'
resources :lists, except: [:edit, :update] do
resources :bookmarks, only: [:new, :create]
end
resources :bookmarks, only: :destroy
end
书签_控制器.rb
class BookmarksController < ApplicationController
before_action :set_bookmark, only: :destroy
before_action :set_list, only: [:new, :create]
def new
@bookmark = Bookmark.new
end
def create
@bookmark = Bookmark.new(bookmark_params)
@bookmark.list = @list
if @bookmark.save
redirect_to list_path(@list)
else
render :new
end
end
def destroy
@bookmark.destroy
redirect_to list_path(@bookmark.list), status: :see_other
end
private
def bookmark_params
params.require(:bookmark).permit(:comment, :movie_id)
end
def set_bookmark
@bookmark = Bookmark.find(params[:id])
end
def set_list
@list = List.find(params[:list_id])
end
end
show.html.erb
<div class="row">
<% @list.movies.each do |movie|%>
<% bookmark = Bookmark.find_by(list: @list, movie: movie) %>
<div class="col-12 col-lg-4">
<div class="card text-center text-white" style="background-color:#ffa82e00;">
<div class="card photo" class="card-img-top">
<%= image_tag(movie.poster_url, class: "card-img-top" )%>
<div class="card-body">
<h5 class="card-title text-dark"><%= movie.title%></h5>
<p class="card-text text-body"><%= movie.overview %></p>
<p class="card-text text-body"><%= bookmark.comment%></p>
<%= link_to "delete", bookmark_path(bookmark), data: { turbo_method: :delete, turbo_confirm: "Are you sure you want to remove #{movie.title} from your #{@list.name} list"}, class: 'text-danger' %>
</div>
</div>
</div>
</div>
<% end %>
<%= link_to "Bookmark now", new_list_bookmark_path(@list), class: "btn btn-primary" %>
1条答案
按热度按时间oyjwcjzk1#
我认为这是因为你使用的link_to会发送一个GET请求。尝试使用
button_for
代替。