I just switched our project over to Edge Rails, and I''m running into
this problem with all of my helper methods that call _url methods:
NoMethodError in ''ApplicationHelper home_link should generate a valid
home link when User.current and Profile.current is not set''
You have a nil object when you didn''t expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.<<
./spec/helpers/application_helper_spec.rb:17
Here''s the relevant spec:
describe ApplicationHelper, "home_link" do
before(:each) do
User.current = nil
Profile.current = nil
end
it "should generate a valid home link when User.current and
Profile.current is not set" do
home_link.should =~ /#{new_profile_url}/
end
it "should generate a valid home link when User.current is set" do
User.current = mock_model(User)
home_link.should =~ /#{dashboard_url}/
end
it "should generate a valid home link when Profile.current is set" do
Profile.current = mock_model(Profile)
home_link.should =~ /#{profile_url(Profile.current)}/
end
end
And the method in ApplicationHelper:
def home_link
if User.current.blank?
if Profile.current.blank?
link_to ''Get Started'', new_profile_url
else
link_to ''My Profile'', profile_url(Profile.current)
end
else
link_to ''Dashboard'', dashboard_url
end
end
I''m using RSpec 1.0.8 and Rails revision 7360. Any ideas where to
start looking for a fix or workaround?
Regards,
J.D.
J.D. Hollis wrote:> I just switched our project over to Edge Rails, and I''m running into > this problem with all of my helper methods that call _url methods:Check out the patch at: http://rubyforge.org/tracker/index.php?func=detail&aid=13186&group_id=797&atid=3151 Jay
On Aug 27, 2007, at 12:52 PM, J.D. Hollis wrote:> I just switched our project over to Edge Rails, and I''m running into > this problem with all of my helper methods that call _url methods: > > NoMethodError in ''ApplicationHelper home_link should generate a valid > home link when User.current and Profile.current is not set'' > You have a nil object when you didn''t expect it! > You might have expected an instance of Array. > The error occurred while evaluating nil.<< > ./spec/helpers/application_helper_spec.rb:17 > > Here''s the relevant spec: > > describe ApplicationHelper, "home_link" do > before(:each) do > User.current = nil > Profile.current = nil > end > > it "should generate a valid home link when User.current and > Profile.current is not set" do > home_link.should =~ /#{new_profile_url}/ > end > > it "should generate a valid home link when User.current is set" do > User.current = mock_model(User) > home_link.should =~ /#{dashboard_url}/ > end > > it "should generate a valid home link when Profile.current is set" do > Profile.current = mock_model(Profile) > home_link.should =~ /#{profile_url(Profile.current)}/ > end > end > > And the method in ApplicationHelper: > > def home_link > if User.current.blank? > if Profile.current.blank? > link_to ''Get Started'', new_profile_url > else > link_to ''My Profile'', profile_url(Profile.current) > end > else > link_to ''Dashboard'', dashboard_url > end > end > > I''m using RSpec 1.0.8 and Rails revision 7360. Any ideas where to > start looking for a fix or workaround? > > Regards, > J.D. > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-usersThis is fixed in Rspec edge. Jim