23

私はここで何か間違ったことをしていると確信していますが、これは私のアプリケーションコントローラーがどのように見えるかです:

class ApplicationController < ActionController::API                                                                                                                                                                                                        
  include ActionController::HttpAuthentication::Basic                                                                                                                                                                                                      
  include ActionController::MimeResponds                                                                                                                                                                                                                   

  http_basic_authenticate_with :name => "joeyjojo", :password => "shabadoo"
end

http_basic_authenticate_withがこのエラーをスローしている理由がわかりません。

undefined method `http_basic_authenticate_with' for ApplicationController:Class

簡単なことだと思いますが、わかりません。MimeRespondsは、他のコントローラーでも正常に機能しています。

4

2 に答える 2

28

ActionController::HttpAuthentication::Basic::ControllerMethodsメソッドを使用できるようにするには、代わりに含める必要があります。ここにモジュールがありますActionController::Base

于 2012-05-03T18:19:58.370 に答える
14

Rails API がある場合は、これをコントローラーに追加します。

ActionController::HttpAuthentication::Basic::ControllerMethods を含める

class YourController < ApplicationController

  include ActionController::HttpAuthentication::Basic::ControllerMethods
  http_basic_authenticate_with name: "username", password: "passwd123"

Rails 4.2.4 と ApplicationController を使用しています。

class ApplicationController < ActionController::API
于 2016-05-09T15:45:32.983 に答える