このエラーが発生し続けますが、このエラーに対処する回答が見つかりませんでした。
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"