0
class BooksController < ApplicationController
before_action :set_book, only: [:show, :edit, :update, :destroy]
before_action :authenticate_user!, except: [:index, :show]
def show
@reviews = Review.where(book_id: @book.id).order("created_at DESC")
if @reviews.blank?
@avg_review = 0
else
@avg_review = @reviews.average(:rating).round(2)
end
end
def destroy
@book.destroy
respond_to do |format|
format.html { redirect_to books_url, notice: 'Book was successfully destroyed.' }
format.json { head :no_content }
end
end
private
def set_book
@book = Book.find(params[:id])
end
def book_params
params.require(:book).permit(:title, :author, :language, :year, :description, :total_pages, :rating, :image)
end
end
Это мой книжныйконтроллер, а мой «удалить» в файле show представлен ниже.Функция разрушения не работает в RoR
<%= link_to 'Delete', book,
data: { confirm: 'Are you sure?' }, method: :delete %>
Я получаю ссылку, но ее не работает. Что не так с моим кодом. Заранее спасибо.
Что конкретно вы подразумеваете под «нерабочим»? Не вызывает вызов 'BooksController # destroy'? Не работает ли 'set_book'? Неужели '@ book.destroy' терпит неудачу? Любые ошибки в консоли JavaScript? Что-нибудь в журналах сервера? –
вам нужно отлаживать фильтры 'set_book' и' authenticate_user! ', Если там все правильно назначается. –