我正在尝试实现Devise,但它是新手。
当我请求... / api / v1 / projects.json时,我得到'未定义的方法管理员?为nil:NilClass',我假设发生因为没有设置params [:token]:
class Api::V1::ProjectsController < Api::V1::BaseController
def index
respond_with(Project.for(current_user))
end
end
class Project < ActiveRecord::Base
...
def self.for(user)
user.admin? ? Project : Project.readable_by(user)
end
end
class User < ActiveRecord::Base
before_save :ensure_authentication_token
devise :database_authenticatable, :registerable, :token_authenticatable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable
...
end
class Api::V1::BaseController < ActionController::Base
before_filter :authenticate_user
respond_to :json
private
def authenticate_user
@current_user = User.find_by_authentication_token(params[:token])
end
def current_user
@current_user
end
end
有没有人知道如何/在哪里设置params [:token]和Devise?
答案 0 :(得分:0)
显然我误解了文档,并通过URL传递令牌: ... / API / V1 / projects.json?标记= s28seWhpPVWkhMU7sszM
问题解决了,我想。