ビューなしでレールアクションを実行したいだけです。
私の「routes.rb」では
resources :pictures do
member do
post 'dislike'
end
end
私の「PictureController.rb」では
、これは機能しません
def dislike
@picture = Picture.find(params[:id])
@like = Like.find(:user_id => current_user.id, :picture_id => params[:id])
@like.destroy
respond_to do |format|
format.html { render :action => :show, :id => params[:id], notice: 'You don\'t like this picture anymore.' }
format.json { render json: @picture }
end
end
これもしない
def dislike
@picture = Picture.find(params[:id])
@like = Like.find(:user_id => current_user.id, :picture_id => params[:id])
@like.destroy
respond_to do |format|
format.html { redirect_to @picture, notice: 'You don\'t like this picture anymore.' }
format.json { render json: @picture }
end
end
またはこれでも(ただし、これは私には当てはまりません。jsonおよびhtmlを介してユーザーにフィードバックが必要です)
def dislike
@picture = Picture.find(params[:id])
@like = Like.find(:user_id => current_user.id, :picture_id => params[:id])
@like.destroy
render :nothing => true
end
しかし、私はこのエラーメッセージを受け取り続けます:
ActionView::MissingTemplate: Missing template pictures/dislike, application/like with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}.
PicturesController のこのアクションがビューを必要としないことをレールに伝えるにはどうすればよいですか?
解決しました!
ビューが必要ないことをレールに伝える問題を実際に解決したわけではありません。別のコントローラーを作成し、メソッドをそこに入れ、嫌なアクションをmatch
呼び出しと一致させるようにレールルーティングに指示しました。確かなことは言えませんがresources :picture
、私のroutes.rb
ファイルに問題があったと思います...
とにかく、みんなありがとう!=)