16 Deployment 15.3 Task J3: Translating Checkout
Expected at least 1 element matching "option[value='es']", found 0. Traceback: /home/rubys/git/awdwr/edition4/checkdepot.rb:391
Add form for setting and showing the site based on the locale.
Use CSS to position the form.
edit public/stylesheets/depot.css
.locale {
float: right;
margin: -0.25em 0.1em;
}
When provided, save the locale in the session.
edit app/controllers/store_controller.rb
def index
if params[:set_locale]
redirect_to store_url(:locale => params[:set_locale])
else
@products = Product.order(:title)
end
end
edit app/views/layouts/application.html.erb
<div id="banner">
<%= form_tag store_path, :class => 'locale' do %>
<%= select_tag 'set_locale',
options_for_select(LANGUAGES, I18n.locale.to_s),
:onchange => 'this.form.submit()' %>
<%= submit_tag 'submit' %>
<%= javascript_tag "$('.locale input').hide()" %>
<% end %>
<%= image_tag("logo.png") %>
<%= @page_title || t('.title') %>
</div>
Try out the form
get /en
Showing /home/rubys/git/awdwr/edition4/work-187-30/depot/app/views/store/index.html.erb where line #6 raised:
uninitialized constant I18n::RESERVED_KEYS
Extracted source (around line #6):
3: <% end %>
4:
5: <!-- START_HIGHLIGHT -->
6: <h1><%= t('.title_html') %></h1>
7: <!-- END_HIGHLIGHT -->
8:
9: <% @products.each do |product| %>
Rails.root: /home/rubys/git/awdwr/edition4/work-187-30/depot
app/views/store/index.html.erb:6:in `_app_views_store_index_html_erb__644177109_70028980718860_0'
/home/rubys/git/rails/actionpack/lib/action_view/helpers/translation_helper.rb:50:in `t'
/home/rubys/git/rails/actionpack/lib/action_view/template.rb:135:in `send'
/home/rubys/git/rails/actionpack/lib/action_view/template.rb:135:in `render'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:54:in `instrument'
/home/rubys/git/rails/actionpack/lib/action_view/template.rb:127:in `render'
/home/rubys/git/rails/actionpack/lib/action_view/render/rendering.rb:59:in `_render_template'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:52:in `instrument'
/home/rubys/git/rails/activesupport/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:52:in `instrument'
/home/rubys/git/rails/actionpack/lib/action_view/render/rendering.rb:56:in `_render_template'
/home/rubys/git/rails/actionpack/lib/action_view/render/rendering.rb:26:in `render'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:115:in `_render_template'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:109:in `render_to_body'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/renderers.rb:47:in `render_to_body'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/compatibility.rb:55:in `render_to_body'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:102:in `render_to_string'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:93:in `render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/rendering.rb:17:in `render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:40:in `render'
/home/rubys/git/rails/activesupport/lib/active_support/core_ext/benchmark.rb:5:in `ms'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/benchmark.rb:308:in `realtime'
/home/rubys/git/rails/activesupport/lib/active_support/core_ext/benchmark.rb:5:in `ms'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:40:in `render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:78:in `cleanup_view_runtime'
/home/rubys/git/rails/activerecord/lib/active_record/railties/controller_runtime.rb:15:in `cleanup_view_runtime'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:39:in `render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/implicit_render.rb:10:in `default_render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/implicit_render.rb:5:in `send_action'
/home/rubys/git/rails/actionpack/lib/abstract_controller/base.rb:150:in `process_action'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/rendering.rb:11:in `process_action'
/home/rubys/git/rails/actionpack/lib/abstract_controller/callbacks.rb:18:in `process_action'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:446:in `_run__1549614014__process_action__1080333458__callbacks'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:410:in `send'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:410:in `_run_process_action_callbacks'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:94:in `send'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:94:in `run_callbacks'
/home/rubys/git/rails/actionpack/lib/abstract_controller/callbacks.rb:17:in `process_action'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/rescue.rb:17:in `process_action'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:52:in `instrument'
/home/rubys/git/rails/activesupport/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:52:in `instrument'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:29:in `process_action'
/home/rubys/git/rails/actionpack/lib/abstract_controller/base.rb:119:in `process'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:41:in `process'
/home/rubys/git/rails/actionpack/lib/action_controller/metal.rb:138:in `dispatch'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
/home/rubys/git/rails/actionpack/lib/action_controller/metal.rb:178:in `action'
/home/rubys/git/rails/actionpack/lib/action_dispatch/routing/route_set.rb:68:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/routing/route_set.rb:68:in `dispatch'
/home/rubys/git/rails/actionpack/lib/action_dispatch/routing/route_set.rb:33:in `call'
rack-mount (0.6.14) lib/rack/mount/route_set.rb:148:in `call'
rack-mount (0.6.14) lib/rack/mount/code_generation.rb:93:in `recognize'
rack-mount (0.6.14) lib/rack/mount/code_generation.rb:229:in `optimized_each'
rack-mount (0.6.14) lib/rack/mount/code_generation.rb:92:in `recognize'
rack-mount (0.6.14) lib/rack/mount/route_set.rb:139:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/routing/route_set.rb:499:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/head.rb:14:in `call'
rack (1.2.8) lib/rack/methodoverride.rb:24:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/params_parser.rb:21:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/flash.rb:182:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb:149:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/cookies.rb:302:in `call'
/home/rubys/git/rails/activerecord/lib/active_record/query_cache.rb:32:in `call'
/home/rubys/git/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:28:in `cache'
/home/rubys/git/rails/activerecord/lib/active_record/query_cache.rb:12:in `cache'
/home/rubys/git/rails/activerecord/lib/active_record/query_cache.rb:31:in `call'
/home/rubys/git/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:354:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/callbacks.rb:46:in `call'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:416:in `_run_call_callbacks'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/callbacks.rb:44:in `call'
rack (1.2.8) lib/rack/sendfile.rb:106:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/remote_ip.rb:48:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/show_exceptions.rb:47:in `call'
/home/rubys/git/rails/railties/lib/rails/rack/logger.rb:13:in `call'
rack (1.2.8) lib/rack/runtime.rb:17:in `call'
/home/rubys/git/rails/activesupport/lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.2.8) lib/rack/lock.rb:13:in `call'
rack (1.2.8) lib/rack/lock.rb:13:in `synchronize'
rack (1.2.8) lib/rack/lock.rb:13:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/static.rb:30:in `call'
/home/rubys/git/rails/railties/lib/rails/application.rb:168:in `call'
/home/rubys/git/rails/railties/lib/rails/application.rb:77:in `send'
/home/rubys/git/rails/railties/lib/rails/application.rb:77:in `method_missing'
/home/rubys/git/rails/railties/lib/rails/rack/log_tailer.rb:14:in `call'
rack (1.2.8) lib/rack/content_length.rb:13:in `call'
rack (1.2.8) lib/rack/handler/webrick.rb:52:in `service'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/server.rb:162:in `start'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/server.rb:95:in `start'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/server.rb:92:in `each'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/server.rb:92:in `start'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/server.rb:23:in `start'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/server.rb:82:in `start'
rack (1.2.8) lib/rack/handler/webrick.rb:13:in `run'
rack (1.2.8) lib/rack/server.rb:217:in `start'
/home/rubys/git/rails/railties/lib/rails/commands/server.rb:65:in `start'
/home/rubys/git/rails/railties/lib/rails/commands.rb:30
/home/rubys/git/rails/railties/lib/rails/commands.rb:27:in `tap'
/home/rubys/git/rails/railties/lib/rails/commands.rb:27
script/rails:6:in `require'
script/rails:6
/home/rubys/git/rails/actionpack/lib/action_view/helpers/translation_helper.rb:50:in `t'
app/views/store/index.html.erb:6:in `_app_views_store_index_html_erb__644177109_70028980718860_0'
/home/rubys/git/rails/actionpack/lib/action_view/template.rb:135:in `send'
/home/rubys/git/rails/actionpack/lib/action_view/template.rb:135:in `render'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:54:in `instrument'
/home/rubys/git/rails/actionpack/lib/action_view/template.rb:127:in `render'
/home/rubys/git/rails/actionpack/lib/action_view/render/rendering.rb:59:in `_render_template'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:52:in `instrument'
/home/rubys/git/rails/activesupport/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:52:in `instrument'
/home/rubys/git/rails/actionpack/lib/action_view/render/rendering.rb:56:in `_render_template'
/home/rubys/git/rails/actionpack/lib/action_view/render/rendering.rb:26:in `render'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:115:in `_render_template'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:109:in `render_to_body'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/renderers.rb:47:in `render_to_body'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/compatibility.rb:55:in `render_to_body'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:102:in `render_to_string'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:93:in `render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/rendering.rb:17:in `render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:40:in `render'
/home/rubys/git/rails/activesupport/lib/active_support/core_ext/benchmark.rb:5:in `ms'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/benchmark.rb:308:in `realtime'
/home/rubys/git/rails/activesupport/lib/active_support/core_ext/benchmark.rb:5:in `ms'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:40:in `render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:78:in `cleanup_view_runtime'
/home/rubys/git/rails/activerecord/lib/active_record/railties/controller_runtime.rb:15:in `cleanup_view_runtime'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:39:in `render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/implicit_render.rb:10:in `default_render'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/implicit_render.rb:5:in `send_action'
/home/rubys/git/rails/actionpack/lib/abstract_controller/base.rb:150:in `process_action'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/rendering.rb:11:in `process_action'
/home/rubys/git/rails/actionpack/lib/abstract_controller/callbacks.rb:18:in `process_action'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:446:in `_run__1549614014__process_action__1080333458__callbacks'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:410:in `send'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:410:in `_run_process_action_callbacks'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:94:in `send'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:94:in `run_callbacks'
/home/rubys/git/rails/actionpack/lib/abstract_controller/callbacks.rb:17:in `process_action'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/rescue.rb:17:in `process_action'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:52:in `instrument'
/home/rubys/git/rails/activesupport/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/home/rubys/git/rails/activesupport/lib/active_support/notifications.rb:52:in `instrument'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/instrumentation.rb:29:in `process_action'
/home/rubys/git/rails/actionpack/lib/abstract_controller/base.rb:119:in `process'
/home/rubys/git/rails/actionpack/lib/abstract_controller/rendering.rb:41:in `process'
/home/rubys/git/rails/actionpack/lib/action_controller/metal.rb:138:in `dispatch'
/home/rubys/git/rails/actionpack/lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
/home/rubys/git/rails/actionpack/lib/action_controller/metal.rb:178:in `action'
/home/rubys/git/rails/actionpack/lib/action_dispatch/routing/route_set.rb:68:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/routing/route_set.rb:68:in `dispatch'
/home/rubys/git/rails/actionpack/lib/action_dispatch/routing/route_set.rb:33:in `call'
rack-mount (0.6.14) lib/rack/mount/route_set.rb:148:in `call'
rack-mount (0.6.14) lib/rack/mount/code_generation.rb:93:in `recognize'
rack-mount (0.6.14) lib/rack/mount/code_generation.rb:229:in `optimized_each'
rack-mount (0.6.14) lib/rack/mount/code_generation.rb:92:in `recognize'
rack-mount (0.6.14) lib/rack/mount/route_set.rb:139:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/routing/route_set.rb:499:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/head.rb:14:in `call'
rack (1.2.8) lib/rack/methodoverride.rb:24:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/params_parser.rb:21:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/flash.rb:182:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb:149:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/cookies.rb:302:in `call'
/home/rubys/git/rails/activerecord/lib/active_record/query_cache.rb:32:in `call'
/home/rubys/git/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:28:in `cache'
/home/rubys/git/rails/activerecord/lib/active_record/query_cache.rb:12:in `cache'
/home/rubys/git/rails/activerecord/lib/active_record/query_cache.rb:31:in `call'
/home/rubys/git/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:354:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/callbacks.rb:46:in `call'
/home/rubys/git/rails/activesupport/lib/active_support/callbacks.rb:416:in `_run_call_callbacks'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/callbacks.rb:44:in `call'
rack (1.2.8) lib/rack/sendfile.rb:106:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/remote_ip.rb:48:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/show_exceptions.rb:47:in `call'
/home/rubys/git/rails/railties/lib/rails/rack/logger.rb:13:in `call'
rack (1.2.8) lib/rack/runtime.rb:17:in `call'
/home/rubys/git/rails/activesupport/lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.2.8) lib/rack/lock.rb:13:in `call'
rack (1.2.8) lib/rack/lock.rb:13:in `synchronize'
rack (1.2.8) lib/rack/lock.rb:13:in `call'
/home/rubys/git/rails/actionpack/lib/action_dispatch/middleware/static.rb:30:in `call'
/home/rubys/git/rails/railties/lib/rails/application.rb:168:in `call'
/home/rubys/git/rails/railties/lib/rails/application.rb:77:in `send'
/home/rubys/git/rails/railties/lib/rails/application.rb:77:in `method_missing'
/home/rubys/git/rails/railties/lib/rails/rack/log_tailer.rb:14:in `call'
rack (1.2.8) lib/rack/content_length.rb:13:in `call'
rack (1.2.8) lib/rack/handler/webrick.rb:52:in `service'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/server.rb:162:in `start'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/server.rb:95:in `start'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/server.rb:92:in `each'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/server.rb:92:in `start'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/server.rb:23:in `start'
/home/rubys/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/webrick/server.rb:82:in `start'
rack (1.2.8) lib/rack/handler/webrick.rb:13:in `run'
rack (1.2.8) lib/rack/server.rb:217:in `start'
/home/rubys/git/rails/railties/lib/rails/commands/server.rb:65:in `start'
/home/rubys/git/rails/railties/lib/rails/commands.rb:30
/home/rubys/git/rails/railties/lib/rails/commands.rb:27:in `tap'
/home/rubys/git/rails/railties/lib/rails/commands.rb:27
script/rails:6:in `require'
script/rails:6
Parameters:
{"locale"=>"en"}
_csrf_token: "0JWNbMejBCqcmIwbrK7Sc7RLeHHSq/G5Fzh+eXUMrew=" cart_id: 4 flash: {:notice=>"Your cart is empty"} session_id: "be150040d5c38491668db9c0c6c6840b" user_id: 1
GATEWAY_INTERFACE: "CGI/1.1" HTTP_ACCEPT: "text/html" HTTP_COOKIE: "_depot_session=BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4; path=/; HttpOnly" HTTP_HOST: "localhost:3000" HTTP_VERSION: "HTTP/1.1" PATH_INFO: "/en" QUERY_STRING: "" REMOTE_ADDR: "127.0.0.1" REMOTE_HOST: "localhost" REQUEST_METHOD: "GET" REQUEST_PATH: "/" REQUEST_URI: "http://localhost:3000/en" SCRIPT_NAME: "" SERVER_NAME: "localhost" SERVER_PORT: "3000" SERVER_PROTOCOL: "HTTP/1.1" SERVER_SOFTWARE: "WEBrick/1.3.1 (Ruby/1.8.7/2013-06-27)" action_controller.instance: #<StoreController:0x7f61c9161a70 @products=[#<Product id: 2, title: "CoffeeScript", description: "<p>\n CoffeeScript is JavaScript done right. ...", image_url: "/images/cs.jpg", price: #<BigDecimal:7f61c8f0c478,'0.36E2',9(18)>, created_at: "2014-02-04 19:49:22", updated_at: "2014-02-04 19:49:22">, #<Product id: 3, title: "Programming Ruby 1.9 & 2.0", description: "<p>\n Ruby is the fastest growing and most ex...", image_url: "/images/ruby.jpg", price: #<BigDecimal:7f61c8f0ab28,'0.4995E2',18(18)>, created_at: "2014-02-04 19:49:22", updated_at: "2014-02-04 19:49:22">, #<Product id: 4, title: "Rails Test Prescriptions", description: "<p>\n <em>Rails Test Prescriptions</em> is a ...", image_url: "/images/rtp.jpg", price: #<BigDecimal:7f61c8f087b0,'0.3495E2',18(18)>, created_at: "2014-02-04 19:49:22", updated_at: "2014-02-04 19:49:22">], @view_context_class=nil, @action_has_layout=true, @cart=#<Cart id: 4, created_at: "2014-02-04 19:51:01", updated_at: "2014-02-04 19:51:01">, @_action_name="index", @_params={"controller"=>"store", "locale"=>"en", "action"=>"index"}, @_config=#<OrderedHash {}>, @_response=#<ActionDispatch::Response:0x7f61c91618e0 @blank=false, @header={}, @sending_file=false, @cache_control={}, @cookie=[], @request=#<ActionDispatch::Request:0x7f61c91619a8 @env={"action_dispatch.request.content_type"=>nil, "action_dispatch.request.path_parameters"=>{:locale=>"en", :action=>"index", :controller=>"store"}, "action_dispatch.secret_token"=>"634eee9f6f429913b67819f57e81d89281f59d106f857fb03e86986660538710f55167d7a206b0e04e502b7de6e78c7f4203c7d3a66b4d517861f0b659c4acfc", "SERVER_PORT"=>"3000", "HTTP_HOST"=>"localhost:3000", "QUERY_STRING"=>"", "HTTP_VERSION"=>"HTTP/1.1", "REQUEST_URI"=>"http://localhost:3000/en", "action_dispatch.request.flash_hash"=>{:notice=>"Your cart is empty"}, "action_dispatch.request.formats"=>[#<Mime::Type:0x7f61caa20db8 @string="text/html", @symbol=:html, @synonyms=["application/xhtml+xml"]>], "rack.request.query_hash"=>{}, "rack.session.options"=>{:httponly=>true, :expire_after=>nil, :domain=>nil, :secure=>false, :id=>"be150040d5c38491668db9c0c6c6840b", :path=>"/"}, "rack.multithread"=>false, "SERVER_PROTOCOL"=>"HTTP/1.1", "GATEWAY_INTERFACE"=>"CGI/1.1", "action_dispatch.remote_ip"=>#<ActionDispatch::RemoteIp::RemoteIpGetter:0x7f61c9224570 @env={...}, @trusted_proxies=/(^127\.0\.0\.1$|^(10|172\.(1[6-9]|2[0-9]|30|31)|192\.168)\.)/i, @check_ip_spoofing=true>, "rack.errors"=>#<IO:0x7f61cf144aa0>, "HTTP_COOKIE"=>"_depot_session=BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4; path=/; HttpOnly", "SERVER_NAME"=>"localhost", "PATH_INFO"=>"/en", "rack.request.cookie_hash"=>{"path"=>"/", "_depot_session"=>"BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4", "HttpOnly"=>nil}, "rack.session"=>{"session_id"=>"be150040d5c38491668db9c0c6c6840b", "_csrf_token"=>"0JWNbMejBCqcmIwbrK7Sc7RLeHHSq/G5Fzh+eXUMrew=", "flash"=>{:notice=>"Your cart is empty"}, "user_id"=>1, "cart_id"=>4}, "action_dispatch.request.accepts"=>[#<Mime::Type:0x7f61caa20db8 @string="text/html", @symbol=:html, @synonyms=["application/xhtml+xml"]>], "action_dispatch.request.parameters"=>{"controller"=>"store", "locale"=>"en", "action"=>"index"}, "action_dispatch.request.request_parameters"=>{}, "action_dispatch.request.unsigned_session_cookie"=>{"session_id"=>"be150040d5c38491668db9c0c6c6840b", "_csrf_token"=>"0JWNbMejBCqcmIwbrK7Sc7RLeHHSq/G5Fzh+eXUMrew=", "flash"=>{:notice=>"Your cart is empty"}, "user_id"=>1, "cart_id"=>4}, "rack.request.cookie_string"=>"_depot_session=BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4; path=/; HttpOnly", "rack.run_once"=>false, "action_controller.instance"=>#<StoreController:0x7f61c9161a70 ...>, "action_dispatch.cookies"=>{"path"=>"/", "_depot_session"=>"BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4", "HttpOnly"=>nil}, "REQUEST_PATH"=>"/", "rack.url_scheme"=>"http", "SCRIPT_NAME"=>"", "REMOTE_ADDR"=>"127.0.0.1", "rack.request.query_string"=>"", "action_dispatch.parameter_filter"=>[:password], "action_dispatch.show_exceptions"=>true, "SERVER_SOFTWARE"=>"WEBrick/1.3.1 (Ruby/1.8.7/2013-06-27)", "REQUEST_METHOD"=>"GET", "rack.input"=>#<StringIO:0x7f61c9225f38>, "HTTP_ACCEPT"=>"text/html", "REMOTE_HOST"=>"localhost", "action_dispatch.request.query_parameters"=>{}, "rack.version"=>[1, 1], "rack.multiprocess"=>false}, @request_method="GET", @method="GET", @filtered_parameters={"controller"=>"store", "locale"=>"en", "action"=>"index"}, @fullpath="/en">, @length=0, @block=nil, @status=200, @etag=nil, @body=[], @writer=#<Proc:0x00007f61cabdeb78@/home/rubys/git/rails/actionpack/lib/action_dispatch/http/response.rb:43>>, @_status=200, @_response_body=nil, @_request=#<ActionDispatch::Request:0x7f61c91619a8 @env={"action_dispatch.request.content_type"=>nil, "action_dispatch.request.path_parameters"=>{:locale=>"en", :action=>"index", :controller=>"store"}, "action_dispatch.secret_token"=>"634eee9f6f429913b67819f57e81d89281f59d106f857fb03e86986660538710f55167d7a206b0e04e502b7de6e78c7f4203c7d3a66b4d517861f0b659c4acfc", "SERVER_PORT"=>"3000", "HTTP_HOST"=>"localhost:3000", "QUERY_STRING"=>"", "HTTP_VERSION"=>"HTTP/1.1", "REQUEST_URI"=>"http://localhost:3000/en", "action_dispatch.request.flash_hash"=>{:notice=>"Your cart is empty"}, "action_dispatch.request.formats"=>[#<Mime::Type:0x7f61caa20db8 @string="text/html", @symbol=:html, @synonyms=["application/xhtml+xml"]>], "rack.request.query_hash"=>{}, "rack.session.options"=>{:httponly=>true, :expire_after=>nil, :domain=>nil, :secure=>false, :id=>"be150040d5c38491668db9c0c6c6840b", :path=>"/"}, "rack.multithread"=>false, "SERVER_PROTOCOL"=>"HTTP/1.1", "GATEWAY_INTERFACE"=>"CGI/1.1", "action_dispatch.remote_ip"=>#<ActionDispatch::RemoteIp::RemoteIpGetter:0x7f61c9224570 @env={...}, @trusted_proxies=/(^127\.0\.0\.1$|^(10|172\.(1[6-9]|2[0-9]|30|31)|192\.168)\.)/i, @check_ip_spoofing=true>, "rack.errors"=>#<IO:0x7f61cf144aa0>, "HTTP_COOKIE"=>"_depot_session=BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4; path=/; HttpOnly", "SERVER_NAME"=>"localhost", "PATH_INFO"=>"/en", "rack.request.cookie_hash"=>{"path"=>"/", "_depot_session"=>"BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4", "HttpOnly"=>nil}, "rack.session"=>{"session_id"=>"be150040d5c38491668db9c0c6c6840b", "_csrf_token"=>"0JWNbMejBCqcmIwbrK7Sc7RLeHHSq/G5Fzh+eXUMrew=", "flash"=>{:notice=>"Your cart is empty"}, "user_id"=>1, "cart_id"=>4}, "action_dispatch.request.accepts"=>[#<Mime::Type:0x7f61caa20db8 @string="text/html", @symbol=:html, @synonyms=["application/xhtml+xml"]>], "action_dispatch.request.parameters"=>{"controller"=>"store", "locale"=>"en", "action"=>"index"}, "action_dispatch.request.request_parameters"=>{}, "action_dispatch.request.unsigned_session_cookie"=>{"session_id"=>"be150040d5c38491668db9c0c6c6840b", "_csrf_token"=>"0JWNbMejBCqcmIwbrK7Sc7RLeHHSq/G5Fzh+eXUMrew=", "flash"=>{:notice=>"Your cart is empty"}, "user_id"=>1, "cart_id"=>4}, "rack.request.cookie_string"=>"_depot_session=BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4; path=/; HttpOnly", "rack.run_once"=>false, "action_controller.instance"=>#<StoreController:0x7f61c9161a70 ...>, "action_dispatch.cookies"=>{"path"=>"/", "_depot_session"=>"BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4", "HttpOnly"=>nil}, "REQUEST_PATH"=>"/", "rack.url_scheme"=>"http", "SCRIPT_NAME"=>"", "REMOTE_ADDR"=>"127.0.0.1", "rack.request.query_string"=>"", "action_dispatch.parameter_filter"=>[:password], "action_dispatch.show_exceptions"=>true, "SERVER_SOFTWARE"=>"WEBrick/1.3.1 (Ruby/1.8.7/2013-06-27)", "REQUEST_METHOD"=>"GET", "rack.input"=>#<StringIO:0x7f61c9225f38>, "HTTP_ACCEPT"=>"text/html", "REMOTE_HOST"=>"localhost", "action_dispatch.request.query_parameters"=>{}, "rack.version"=>[1, 1], "rack.multiprocess"=>false}, @request_method="GET", @method="GET", @filtered_parameters={"controller"=>"store", "locale"=>"en", "action"=>"index"}, @fullpath="/en">, @lookup_context=#<ActionView::LookupContext:0x7f61c9161570 @view_paths=[#<ActionView::FileSystemResolver:0x7f61caf6b160 @path="/home/rubys/git/awdwr/edition4/work-187-30/depot/app/views", @caching=false, @cached={}>], @details_key=#<ActionView::LookupContext::DetailsKey:0x7f61c8f053a8 @hash=70028979874260>, @skip_default_locale=false, @details={:locale=>[:en, :en], :formats=>[:html], :handlers=>[:rjs, :rhtml, :builder, :rxml, :erb]}, @frozen_formats=true>, @_env={"action_dispatch.request.content_type"=>nil, "action_dispatch.request.path_parameters"=>{:locale=>"en", :action=>"index", :controller=>"store"}, "action_dispatch.secret_token"=>"634eee9f6f429913b67819f57e81d89281f59d106f857fb03e86986660538710f55167d7a206b0e04e502b7de6e78c7f4203c7d3a66b4d517861f0b659c4acfc", "SERVER_PORT"=>"3000", "HTTP_HOST"=>"localhost:3000", "QUERY_STRING"=>"", "HTTP_VERSION"=>"HTTP/1.1", "REQUEST_URI"=>"http://localhost:3000/en", "action_dispatch.request.flash_hash"=>{:notice=>"Your cart is empty"}, "action_dispatch.request.formats"=>[#<Mime::Type:0x7f61caa20db8 @string="text/html", @symbol=:html, @synonyms=["application/xhtml+xml"]>], "rack.request.query_hash"=>{}, "rack.session.options"=>{:httponly=>true, :expire_after=>nil, :domain=>nil, :secure=>false, :id=>"be150040d5c38491668db9c0c6c6840b", :path=>"/"}, "rack.multithread"=>false, "SERVER_PROTOCOL"=>"HTTP/1.1", "GATEWAY_INTERFACE"=>"CGI/1.1", "action_dispatch.remote_ip"=>#<ActionDispatch::RemoteIp::RemoteIpGetter:0x7f61c9224570 @env={...}, @trusted_proxies=/(^127\.0\.0\.1$|^(10|172\.(1[6-9]|2[0-9]|30|31)|192\.168)\.)/i, @check_ip_spoofing=true>, "rack.errors"=>#<IO:0x7f61cf144aa0>, "HTTP_COOKIE"=>"_depot_session=BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4; path=/; HttpOnly", "SERVER_NAME"=>"localhost", "PATH_INFO"=>"/en", "rack.request.cookie_hash"=>{"path"=>"/", "_depot_session"=>"BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4", "HttpOnly"=>nil}, "rack.session"=>{"session_id"=>"be150040d5c38491668db9c0c6c6840b", "_csrf_token"=>"0JWNbMejBCqcmIwbrK7Sc7RLeHHSq/G5Fzh+eXUMrew=", "flash"=>{:notice=>"Your cart is empty"}, "user_id"=>1, "cart_id"=>4}, "action_dispatch.request.accepts"=>[#<Mime::Type:0x7f61caa20db8 @string="text/html", @symbol=:html, @synonyms=["application/xhtml+xml"]>], "action_dispatch.request.parameters"=>{"controller"=>"store", "locale"=>"en", "action"=>"index"}, "action_dispatch.request.request_parameters"=>{}, "action_dispatch.request.unsigned_session_cookie"=>{"session_id"=>"be150040d5c38491668db9c0c6c6840b", "_csrf_token"=>"0JWNbMejBCqcmIwbrK7Sc7RLeHHSq/G5Fzh+eXUMrew=", "flash"=>{:notice=>"Your cart is empty"}, "user_id"=>1, "cart_id"=>4}, "rack.request.cookie_string"=>"_depot_session=BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4; path=/; HttpOnly", "rack.run_once"=>false, "action_controller.instance"=>#<StoreController:0x7f61c9161a70 ...>, "action_dispatch.cookies"=>{"path"=>"/", "_depot_session"=>"BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4", "HttpOnly"=>nil}, "REQUEST_PATH"=>"/", "rack.url_scheme"=>"http", "SCRIPT_NAME"=>"", "REMOTE_ADDR"=>"127.0.0.1", "rack.request.query_string"=>"", "action_dispatch.parameter_filter"=>[:password], "action_dispatch.show_exceptions"=>true, "SERVER_SOFTWARE"=>"WEBrick/1.3.1 (Ruby/1.8.7/2013-06-27)", "REQUEST_METHOD"=>"GET", "rack.input"=>#<StringIO:0x7f61c9225f38>, "HTTP_ACCEPT"=>"text/html", "REMOTE_HOST"=>"localhost", "action_dispatch.request.query_parameters"=>{}, "rack.version"=>[1, 1], "rack.multiprocess"=>false}, @_headers={"Content-Type"=>"text/html"}> action_dispatch.cookies: {"path"=>"/", "_depot_session"=>"BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4", "HttpOnly"=>nil} action_dispatch.parameter_filter: [:password] action_dispatch.remote_ip: #<ActionDispatch::RemoteIp::RemoteIpGetter:0x7f61c9224570 @env={"action_dispatch.request.content_type"=>nil, "action_dispatch.request.path_parameters"=>{:locale=>"en", :action=>"index", :controller=>"store"}, "action_dispatch.secret_token"=>"634eee9f6f429913b67819f57e81d89281f59d106f857fb03e86986660538710f55167d7a206b0e04e502b7de6e78c7f4203c7d3a66b4d517861f0b659c4acfc", "SERVER_PORT"=>"3000", "HTTP_HOST"=>"localhost:3000", "QUERY_STRING"=>"", "HTTP_VERSION"=>"HTTP/1.1", "REQUEST_URI"=>"http://localhost:3000/en", "action_dispatch.request.flash_hash"=>{:notice=>"Your cart is empty"}, "action_dispatch.request.formats"=>[#<Mime::Type:0x7f61caa20db8 @string="text/html", @symbol=:html, @synonyms=["application/xhtml+xml"]>], "rack.request.query_hash"=>{}, "rack.session.options"=>{:httponly=>true, :expire_after=>nil, :domain=>nil, :secure=>false, :id=>"be150040d5c38491668db9c0c6c6840b", :path=>"/"}, "rack.multithread"=>false, "SERVER_PROTOCOL"=>"HTTP/1.1", "GATEWAY_INTERFACE"=>"CGI/1.1", "action_dispatch.remote_ip"=>#<ActionDispatch::RemoteIp::RemoteIpGetter:0x7f61c9224570 ...>, "rack.errors"=>#<IO:0x7f61cf144aa0>, "HTTP_COOKIE"=>"_depot_session=BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4; path=/; HttpOnly", "SERVER_NAME"=>"localhost", "PATH_INFO"=>"/en", "rack.request.cookie_hash"=>{"path"=>"/", "_depot_session"=>"BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4", "HttpOnly"=>nil}, "rack.session"=>{"session_id"=>"be150040d5c38491668db9c0c6c6840b", "_csrf_token"=>"0JWNbMejBCqcmIwbrK7Sc7RLeHHSq/G5Fzh+eXUMrew=", "flash"=>{:notice=>"Your cart is empty"}, "user_id"=>1, "cart_id"=>4}, "action_dispatch.request.accepts"=>[#<Mime::Type:0x7f61caa20db8 @string="text/html", @symbol=:html, @synonyms=["application/xhtml+xml"]>], "action_dispatch.request.parameters"=>{"controller"=>"store", "locale"=>"en", "action"=>"index"}, "action_dispatch.request.request_parameters"=>{}, "action_dispatch.request.unsigned_session_cookie"=>{"session_id"=>"be150040d5c38491668db9c0c6c6840b", "_csrf_token"=>"0JWNbMejBCqcmIwbrK7Sc7RLeHHSq/G5Fzh+eXUMrew=", "flash"=>{:notice=>"Your cart is empty"}, "user_id"=>1, "cart_id"=>4}, "rack.request.cookie_string"=>"_depot_session=BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4; path=/; HttpOnly", "rack.run_once"=>false, "action_controller.instance"=>#<StoreController:0x7f61c9161a70 @products=[#<Product id: 2, title: "CoffeeScript", description: "<p>\n CoffeeScript is JavaScript done right. ...", image_url: "/images/cs.jpg", price: #<BigDecimal:7f61c8ece6c8,'0.36E2',9(18)>, created_at: "2014-02-04 19:49:22", updated_at: "2014-02-04 19:49:22">, #<Product id: 3, title: "Programming Ruby 1.9 & 2.0", description: "<p>\n Ruby is the fastest growing and most ex...", image_url: "/images/ruby.jpg", price: #<BigDecimal:7f61c8ecd598,'0.4995E2',18(18)>, created_at: "2014-02-04 19:49:22", updated_at: "2014-02-04 19:49:22">, #<Product id: 4, title: "Rails Test Prescriptions", description: "<p>\n <em>Rails Test Prescriptions</em> is a ...", image_url: "/images/rtp.jpg", price: #<BigDecimal:7f61c8ecc8c8,'0.3495E2',18(18)>, created_at: "2014-02-04 19:49:22", updated_at: "2014-02-04 19:49:22">], @view_context_class=nil, @action_has_layout=true, @cart=#<Cart id: 4, created_at: "2014-02-04 19:51:01", updated_at: "2014-02-04 19:51:01">, @_action_name="index", @_params={"controller"=>"store", "locale"=>"en", "action"=>"index"}, @_config=#<OrderedHash {}>, @_response=#<ActionDispatch::Response:0x7f61c91618e0 @blank=false, @header={}, @sending_file=false, @cache_control={}, @cookie=[], @request=#<ActionDispatch::Request:0x7f61c91619a8 @env={...}, @request_method="GET", @method="GET", @filtered_parameters={"controller"=>"store", "locale"=>"en", "action"=>"index"}, @fullpath="/en">, @length=0, @block=nil, @status=200, @etag=nil, @body=[], @writer=#<Proc:0x00007f61cabdeb78@/home/rubys/git/rails/actionpack/lib/action_dispatch/http/response.rb:43>>, @_status=200, @_response_body=nil, @_request=#<ActionDispatch::Request:0x7f61c91619a8 @env={...}, @request_method="GET", @method="GET", @filtered_parameters={"controller"=>"store", "locale"=>"en", "action"=>"index"}, @fullpath="/en">, @lookup_context=#<ActionView::LookupContext:0x7f61c9161570 @view_paths=[#<ActionView::FileSystemResolver:0x7f61caf6b160 @path="/home/rubys/git/awdwr/edition4/work-187-30/depot/app/views", @caching=false, @cached={}>], @details_key=#<ActionView::LookupContext::DetailsKey:0x7f61c8f053a8 @hash=70028979874260>, @skip_default_locale=false, @details={:locale=>[:en, :en], :formats=>[:html], :handlers=>[:rjs, :rhtml, :builder, :rxml, :erb]}, @frozen_formats=true>, @_env={...}, @_headers={"Content-Type"=>"text/html"}>, "action_dispatch.cookies"=>{"path"=>"/", "_depot_session"=>"BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4", "HttpOnly"=>nil}, "REQUEST_PATH"=>"/", "rack.url_scheme"=>"http", "SCRIPT_NAME"=>"", "REMOTE_ADDR"=>"127.0.0.1", "rack.request.query_string"=>"", "action_dispatch.parameter_filter"=>[:password], "action_dispatch.show_exceptions"=>true, "SERVER_SOFTWARE"=>"WEBrick/1.3.1 (Ruby/1.8.7/2013-06-27)", "REQUEST_METHOD"=>"GET", "rack.input"=>#<StringIO:0x7f61c9225f38>, "HTTP_ACCEPT"=>"text/html", "REMOTE_HOST"=>"localhost", "action_dispatch.request.query_parameters"=>{}, "rack.version"=>[1, 1], "rack.multiprocess"=>false}, @trusted_proxies=/(^127\.0\.0\.1$|^(10|172\.(1[6-9]|2[0-9]|30|31)|192\.168)\.)/i, @check_ip_spoofing=true> action_dispatch.request.accepts: [#<Mime::Type:0x7f61caa20db8 @string="text/html", @symbol=:html, @synonyms=["application/xhtml+xml"]>] action_dispatch.request.content_type: nil action_dispatch.request.flash_hash: {:notice=>"Your cart is empty"} action_dispatch.request.formats: [#<Mime::Type:0x7f61caa20db8 @string="text/html", @symbol=:html, @synonyms=["application/xhtml+xml"]>] action_dispatch.request.parameters: {"controller"=>"store", "locale"=>"en", "action"=>"index"} action_dispatch.request.path_parameters: {:locale=>"en", :action=>"index", :controller=>"store"} action_dispatch.request.query_parameters: {} action_dispatch.request.request_parameters: {} action_dispatch.request.unsigned_session_cookie: {"session_id"=>"be150040d5c38491668db9c0c6c6840b", "_csrf_token"=>"0JWNbMejBCqcmIwbrK7Sc7RLeHHSq/G5Fzh+eXUMrew=", "flash"=>{:notice=>"Your cart is empty"}, "user_id"=>1, "cart_id"=>4} action_dispatch.secret_token: "634eee9f6f429913b67819f57e81d89281f59d106f857fb03e86986660538710f55167d7a206b0e04e502b7de6e78c7f4203c7d3a66b4d517861f0b659c4acfc" action_dispatch.show_exceptions: true rack.errors: #<IO:0x7f61cf144aa0> rack.input: #<StringIO:0x7f61c9225f38> rack.multiprocess: false rack.multithread: false rack.request.cookie_hash: {"path"=>"/", "_depot_session"=>"BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4", "HttpOnly"=>nil} rack.request.cookie_string: "_depot_session=BAh7CiIPc2Vzc2lvbl9pZCIlYmUxNTAwNDBkNWMzODQ5MTY2OGRiOWMwYzZjNjg0MGIiEF9jc3JmX3Rva2VuIjEwSldOYk1lakJDcWNtSXdicks3U2M3UkxlSEhTcS9HNUZ6aCtlWFVNcmV3PSIKZmxhc2hJQzolQWN0aW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIhdZb3VyIGNhcnQgaXMgZW1wdHkGOgpAdXNlZG86CFNldAY6CkBoYXNoewAiDHVzZXJfaWRpBiIMY2FydF9pZGkJ--ff1ca692b6886e0b758790afc8bf3457a307f7a4; path=/; HttpOnly" rack.request.query_hash: {} rack.request.query_string: "" rack.run_once: false rack.session: {"session_id"=>"be150040d5c38491668db9c0c6c6840b", "_csrf_token"=>"0JWNbMejBCqcmIwbrK7Sc7RLeHHSq/G5Fzh+eXUMrew=", "flash"=>{:notice=>"Your cart is empty"}, "user_id"=>1, "cart_id"=>4} rack.session.options: {:httponly=>true, :expire_after=>nil, :domain=>nil, :secure=>false, :id=>"be150040d5c38491668db9c0c6c6840b", :path=>"/"} rack.url_scheme: "http" rack.version: [1, 1]
Headers:
None
rake test
[deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.
[deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.
Loaded suite /home/rubys/.rvm/gems/ruby-1.8.7-p374/gems/rake-10.1.1/lib/rake/rake_test_loader
Started
..........
Finished in 0.251012 seconds.
10 tests, 31 assertions, 0 failures, 0 errors
[deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.
Loaded suite /home/rubys/.rvm/gems/ruby-1.8.7-p374/gems/rake-10.1.1/lib/rake/rake_test_loader
Started
.....................E.E...............EE.......
Finished in 0.959113 seconds.
1) Error:
test_should_get_edit(OrdersControllerTest):
ActionView::Template::Error: uninitialized constant I18n::RESERVED_KEYS
app/views/orders/_form.html.erb:31:in `_app_views_orders__form_html_erb___1104391054_70197070698900_1008830'
app/views/orders/_form.html.erb:2:in `_app_views_orders__form_html_erb___1104391054_70197070698900_1008830'
app/views/orders/edit.html.erb:3:in `_app_views_orders_edit_html_erb__687036559_70197070707680_0'
test/functional/orders_controller_test.rb:55:in `test_should_get_edit'
2) Error:
test_should_get_new(OrdersControllerTest):
ActionView::Template::Error: uninitialized constant I18n::RESERVED_KEYS
app/views/orders/_form.html.erb:31:in `_app_views_orders__form_html_erb___1104391054_70197070698900_1008830'
app/views/orders/_form.html.erb:2:in `_app_views_orders__form_html_erb___1104391054_70197070698900_1008830'
app/views/orders/new.html.erb:6:in `_app_views_orders_new_html_erb___1975375319_70197075986160_0'
app/controllers/orders_controller.rb:41:in `new'
test/functional/orders_controller_test.rb:32:in `test_should_get_new'
3) Error:
test_markup_needed_for_store.js.coffee_is_in_place(StoreControllerTest):
ActionView::Template::Error: uninitialized constant I18n::RESERVED_KEYS
app/views/store/index.html.erb:6:in `_app_views_store_index_html_erb__285249087_70197074469820_0'
test/functional/store_controller_test.rb:15:in `test_markup_needed_for_store.js.coffee_is_in_place'
4) Error:
test_should_get_index(StoreControllerTest):
ActionView::Template::Error: uninitialized constant I18n::RESERVED_KEYS
app/views/store/index.html.erb:6:in `_app_views_store_index_html_erb__285249087_70197074469820_0'
test/functional/store_controller_test.rb:5:in `test_should_get_index'
48 tests, 71 assertions, 0 failures, 4 errors
[deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.
Loaded suite /home/rubys/.rvm/gems/ruby-1.8.7-p374/gems/rake-10.1.1/lib/rake/rake_test_loader
Started
EEE
Finished in 0.303856 seconds.
1) Error:
test_buying_a_product(DslUserStoriesTest):
ActionView::Template::Error: uninitialized constant I18n::RESERVED_KEYS
app/views/store/index.html.erb:6:in `_app_views_store_index_html_erb___1229304434_69960275952480_0'
test/integration/dsl_user_stories_test.rb:39:in `test_buying_a_product'
2) Error:
test_two_people_buying(DslUserStoriesTest):
ActionView::Template::Error: uninitialized constant I18n::RESERVED_KEYS
app/views/orders/_form.html.erb:31:in `_app_views_orders__form_html_erb___1475748286_69960278986420_1014910'
app/views/orders/_form.html.erb:2:in `_app_views_orders__form_html_erb___1475748286_69960278986420_1014910'
app/views/orders/new.html.erb:6:in `_app_views_orders_new_html_erb___376648723_69960279095860_0'
app/controllers/orders_controller.rb:41:in `new'
test/integration/dsl_user_stories_test.rb:86:in `checks_out'
test/integration/dsl_user_stories_test.rb:56:in `test_two_people_buying'
3) Error:
test_buying_a_product(UserStoriesTest):
ActionView::Template::Error: uninitialized constant I18n::RESERVED_KEYS
app/views/store/index.html.erb:6:in `_app_views_store_index_html_erb___1229304434_69960275952480_0'
test/integration/user_stories_test.rb:19:in `test_buying_a_product'
3 tests, 4 assertions, 0 failures, 3 errors
Errors running test:functionals, test:integration!