I’m having trouble getting this to work.
The recipe is simple:
def setup
@controller = SomeController.new
request = ActionController::TestRequest.new
@controller.instance_eval { @params = {}, @request = request }
@controller.send(:initialize_current_url)
end
But with Rails 1.2.3 I’m getting this error:
- Error:
test_x(ApplicationHelperTest):
TypeError: can’t clone NilClass
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/
action_controller/base.rb:1082:in clone' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/ action_controller/base.rb:1082:in
initialize_current_url’
application_helper_test.rb:20:in send' application_helper_test.rb:20:in
setup_without_fixtures’
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/
lib/active_record/fixtures.rb:576:in `setup’
Any ideas?
Thanks
On Dec 7, 9:47 am, kevin cline [email protected] wrote:
But with Rails 1.2.3 I’m getting this error:
- Error:
test_x(ApplicationHelperTest):
TypeError: can’t clone NilClass
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/
action_controller/base.rb:1082:in clone' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/ action_controller/base.rb:1082:in
initialize_current_url’
I think that’s changed to since the original Recipes book was
published, and it’s now:
@controller.instance_variable_set(:@url,
(ActionController::UrlRewriter.new @request, {}))
A setup that works for me is:
def setup
super
@request = ActionController::TestRequest.new
@controller = StubController.new
@controller.request = @request
@controller.instance_variable_set(:@url,
(ActionController::UrlRewriter.new @request, {}))
ActionView::Helpers::AssetTagHelper::reset_javascript_include_default
end
Cheers,
Mike