2

Rails3.2を使用してプロジェクトを開発しています。プロジェクトには、基本的なCRUDメソッドを使用してユーザープロファイルを管理するコントローラーがあります。

ある時点で、ユーザープロファイルの場所を保存するために使用される「location」という新しいメソッドを追加しました。このメソッドはJSONリクエストにのみ応答します。

このメソッドを追加した後、プロファイルの更新アクションの後のリダイレクトは、以前のように動作していません。編集アクションにリダイレクトする必要がありますが、代わりに次のようになります。

Redirected to http://localhost:3000/profiles/1/edit
Completed 406 Not Acceptable in 367ms (ActiveRecord: 23.1ms)

プロファイルの編集アクションルートは変更されておらず、「場所」アクションの名前を変更するとすべてが正常に機能しているため、メソッド名をゲストとして使用しますが、理由はわかりません。手伝って頂けますか?

4

1 に答える 1

2

locationはコントローラーで使用できるメソッドでActionController::Metalあり、この方法でオーバーライドします。

/users/:id/locationメソッドに名前を付ける必要なしにルートを保持できますlocation。例:あなたのroutes.rb

 resources :users do
   member do
     put :location, to: 'users#update_location' # Use the verb and the action name you see fit
   end
 end

そしてあなたの中でUsersController

 class UsersController < ApplicationController
   def update_location
     # Do your magic
   end
 end
于 2012-12-07T12:02:41.110 に答える