Я сделал модуль в /rails_root/lib/common/common_log.rb и включил его в ApplicationController, , вызывающий его из моего контроллера, как правило, заканчивается. , тогда я сделал rspec. но произошла ошибка. Я не могу понять, как написать params в spec-файле. Пожалуйста, помогите мне решить эту проблему.Как я могу проверить использование параметров рельсов вне рельсов контроллера
# RSpec потушить ошибкуFailures:
1) CommonLog log_error
Failure/Error: log_error("xxx")
NameError:
undefined local variable or method `params' for #<RSpec::Core::ExampleGroup::Nested_1:0x3196f
50>
# ./lib/common/common_log.rb:3:in `log_error'
# ./spec/lib/common/common_log_spec.rb:6:in `block (2 levels) in <top (required)>'
# моего файл модуля common_log.rb
module CommonLog
def log_error(msg)
Rails.logger.error "E: controller : #{params[:controller]} action : #{params[:action]} msg=#{msg}"
end
end
# моей спецификация файл
require 'spec_helper'
require File.expand_path("../../../../lib/common/common_log", __FILE__)
include CommonLog
describe CommonLog do
it "log_error" do
log_error("xxx")
end
end
Я рад видеть вашу помощь. этот модуль находился внутри контроллера rails. Я достиг своей цели с вашим советом. Для меня полезны документы Rspec анонимного контроллера. Большое спасибо за вашу доброту. – shoon