2016-09-21 2 views
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 %> 

Я получаю ссылку, но ее не работает. Что не так с моим кодом. Заранее спасибо.

+1

Что конкретно вы подразумеваете под «нерабочим»? Не вызывает вызов 'BooksController # destroy'? Не работает ли 'set_book'? Неужели '@ book.destroy' терпит неудачу? Любые ошибки в консоли JavaScript? Что-нибудь в журналах сервера? –

+0

вам нужно отлаживать фильтры 'set_book' и' authenticate_user! ', Если там все правильно назначается. –

ответ

0

Убедитесь, что вы положили //= require jquery_ujs в номер assets/javascripts/application.js.

+0

Я добавил, что уже .. –

Смежные вопросы