2

このエラーが発生し続けますが、このエラーに対処する回答が見つかりませんでした。

Book、User、Like モデルを次のように記述しています。

class Book < ActiveRecord::Base
  attr_accessible :title

  has_many :likes
  has_many :users, through: :likes
end

class User < ActiveRecord::Base
  attr_accessible :name

  has_many :likes
  has_many :books, through: :likes
end

class Like < ActiveRecord::Base
  attr_accessible :book, :user

  belongs_to :book
  belongs_to :user
end

対応する好きなコントローラー:

# app/controllers/likes_controller.rb
class LikesController < ApplicationController

  def index
    # Assign the logged in user to @user
    @user = current_user
    # Grab all of the books and put them into an array in @books
    @books = Book.all
  end

  def create 
    book = Book.find(params[:book_id])
    Like.create(:book => book, :user => current_user)
    redirect_to likes_path, :notice => "You just liked the book #{book.title}" 
  end

  def destroy
    like = Like.find(params[:id])
    like.destroy
    redirect_to likes_path, :notice => "You destroyed a like"
  end
end

私のconfig/routers.rbでは:

MyApp::Application.routes.draw do

  resources :likes

 end

既存のようなものを削除するはずのリンクがあります:

<% like = book.likes.where(:user_id => @user.id).first %>
 <%= link_to "destroy like", likes_path(like.id), :method => :delete %

しかし、リンクをクリックすると、次のエラーが表示されます。

No route matches [DELETE] "/likes.7" 
4

2 に答える 2