私はレールに不慣れで、この質問に対する回答に従いました。
これが私のプロジェクトの様子です:
コントローラ:
def create
def create
current_user.likes.create(:post_id => params[:post_id])
render :layout => false
end
end
.js ファイル:
$ ->
$(".like").click ->
post_id = $(this).attr('id')
$.ajax
type: 'POST'
url: 'likes/' + post_id
success: ->
alert "succsess!"
Routes.rb
Sample::Application.routes.draw do
resources :likes
resources :users
resources :sessions, only: [:new, :create, :destroy]
resources :posts, only: [:create, :destroy]
root to: 'pages#home'
match '/about', to: 'pages#about'
match '/contact', to: 'pages#contact'
match '/help', to: 'pages#help'
match '/signup', to: 'users#new'
match '/signin', to: 'sessions#new'
match '/signout', to: 'sessions#destroy'
post '/likes/4', to: 'likes#create', :as => :like
end
(私は提案をテストするために「/likes/4」を使用します (将来的には「post_id」になります))。
ビューの [いいね] ボタンをクリックすると、いいねがデータベースに保存されますが、このエラーが発生します (Chrome のインスペクターでコンソールを見ると)...
POST http://0.0.0.0:3000/likes/4 500 (Internal Server Error)
...そして、ajaxから成功のアラートを受け取ることはありません。
を実行するwget --post-data='' http://localhost:3000/likes/4
と、次のようになります。
--2012-07-22 19:35:01-- http://localhost:3000/likes/4
Resolving localhost... ::1, 127.0.0.1, fe80::1
Connecting to localhost|::1|:3000... failed: Connection refused.
Connecting to localhost|127.0.0.1|:3000... connected.
HTTP request sent, awaiting response... 500 Internal Server Error
2012-07-22 19:35:02 ERROR 500: Internal Server Error.
このエラーの原因を知っている人はいますか?