Почему в тестовой среде Rails хэш стойки env пуст? - PullRequest
7 голосов
/ 24 января 2012

В моем приложении Rails я получаю доступ к хэшу env в одном из моих действий контроллера.

Что-то вроде:

def my_before_filter
  env['some.key'] = "Something or other"
end

Это прекрасно работает для моих требований.

Если я запускаю свое приложение Rails в тестовой среде и посещаю действие вроде:

# /users in UsersController#index
def index
  puts env.inspect
end

Затем содержимое хеша env выводится на консоль, как и ожидалось.

Когда я получаю это действие из примера RSPec, выводом будет пустой хеш?

it 'should get the index action' do
  get :index
end

.....{}.... # rspec output

Почему хэш env пуст?

Я построил фиктивные рельсы приложение, чтобы показать это

1 Ответ

10 голосов
/ 27 января 2012

используйте

request.env

вместо просто env в коде контроллера.

например /

def index
  puts request.env.inspect
end

Надеюсь, это поможет?

Кстатина другом замечании: при работе с репозиторием github вам нужно удалить public / index.html, чтобы ваш корневой маршрут работал, при запуске сервера.

...