[rspec-users] NameError when passing a URL helper to a method
Nick Hoffman
nick at deadorange.com
Fri Dec 5 13:06:00 EST 2008
On 2008-12-04, at 19:56, Pat Maddox wrote:
> Nick Hoffman <nick at deadorange.com> writes:
>> On 2008-12-04, at 17:43, Nick Hoffman wrote:
>>> The only solution that I can think of is to do this:
>>> before :each do
>>> @account_url = account_url
>>> end
>>> it_should_redirect_to 'the account page', @account_url
>>
>> Actually, that suggestion above of mine doesn't work. It fails with:
>> You have a nil object when you didn't expect it!
>> The error occurred while evaluating nil.rewrite
>> (eval):17:in `account_url'
>>
>> I thought of it while writing that last email, but didn't test it
>> before hitting send.
>> -Nick
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
>
> It's the same as
>
> class Foo
> @class_instance_variable = "blah"
>
> def foo
> puts @class_instance_variable
> end
> end
>
> Foo.foo will print nothing, because @class_instance_variable is nil in
> the object instance.
>
> Anyway, I thought of an even cleaner way to do things than using a
> block, assuming you only care about calling one method:
>
> do_something(:blah_url_helper)
>
> def do_something(helper_name)
> send(helper_name)
> end
>
> Pat
Hi Pat. That's a great suggestion. Here's what I ended up doing:
http://gist.github.com/32424
Thanks,
Nick
More information about the rspec-users
mailing list