我创建了一个内部 gem 用于管理名为“record_search”的记录,其中包括一个名为“ApiController”的控制器在一个应用程序中,我需要挂钩授权行为以防止数据被公开访问,因此我添加了一个 ActiveSupport::允许应用添加 before_filter 的关注模块。如何正确测试此 before_filter?(使用 rspec)
在宝石中:
应用程序/控制器/api_controller.rb
module RecordSearch
class ApiController < ApplicationController
respond_to :json
def search
render json: #app-specific code
end
def find
render json: #app-specific code
end
include Extensions #define any authorization logic here
end
end
本地应用:
应用程序/控制器/关注/record_search/extensions.rb
module RecordSearch::Extensions
extend ActiveSupport::Concern
include ApplicationHelper #defines current_user method
included do
before_filter :require_premium_user, :only => [:find,:search]
end
private
def require_premium_user
unless current_user
return render :json => {"error" => "not authorized"}
end
end
end