私はRoA 3.0 WebアプリケーションをOAuth APIプロバイダとして使用しています。さて、APIでは、正しいHTTPエラーコードをAPIコンシューマに返したいと思います。これはどうすればいいですか?Ruby on Railsアプリケーションから正しいHTTPエラーコードを返す方法
def destroy_oauth
@item = Item.find(params[:id])
if([email protected]? && @item.user_id == current_user.id)
@item.destroy
respond_to do |format|
format.js
format.xml
end
else
raise ActionController::RoutingError.new('Forbidden')
end
end
ので、エラーの場合には、私は禁断の403コードを返すようにしようとしている:ここで
は一例です。それでも、これを実行すると常に404 Not Foundが返されます。正しいコードを返すにはどうしたらいいですか?
これは何とかウェブサーバーで設定可能なものですか?
OAuth API xmlレスポンスでもこれを行う必要がありますか? –
ここでは、このような '.html'拡張子の指定は推奨されていません(https://github.com/rails/rails/issues/7288のディスカッションを参照)ので、' render(:file = > 403:、layout => false) '(フォーマットを指定した方法に注意してください)。 –
...または 'render(:file => Rails.root.join( 'public'、 '403')、:formats => [:html]、:status => 403、:layout => false) 。 –