Scaffold views spec failing

Forgive a very nooooob question. I am trying to get my head around all
of this.
Have a couple of simple models (weird spelling of tipe was in case
type was a reserved word …). They were all generated with the
rspec_scaffold generator

class Category < ActiveRecord::Base
has_many :tipes
validates_uniqueness_of :name
validates_presence_of :name
end

class Tipe < ActiveRecord::Base
belongs_to :category
validates_uniqueness_of :name
validates_presence_of :name
end

I have a line in my tipes/index.html.erb
<%=h tipe.category.name %>

All works just fine in the development environment, but when I run
autospec, it fails with the the following error:
“ActionView::TemplateError in ‘/tipes/index.html.erb renders a list of
tipes’ undefined method `name’ for nil:NilClass”

The tipes/index.html.erb_spec.rb is the standard rspec_scaffold
generated one :

require ‘spec_helper’

describe “/tipes/index.html.erb” do
include TipesHelper

before(:each) do
assigns[:tipes] = [
stub_model(Tipe,
:name => “value for name”,
:live => false,
:category_id => 1
),
stub_model(Tipe,
:name => “value for name”,
:live => false,
:category_id => 1
)
]

end

it “renders a list of tipes” do
render
response.should have_tag(“tr>td”, “value for name”.to_s, 2)
response.should have_tag(“tr>td”, false.to_s, 2)
response.should have_tag(“tr>td”, 1.to_s, 2)
end
end

Clearly there is some problem with the association - it isn’t
understanding it. So my dumb nooob question is … what do I do to get
this to work? If I leave the line in the index.html.erb as <%=h
tipe.category_id %> it is all sweetness and light. If I change it ot
<%=h tipe.category.name %> the world is a dark, cold place…

(PS - I don’t really understand the assigns[:tipe] thing either …)

(this is the error trace
app/views/tipes/index.html.erb:14
app/views/tipes/index.html.erb:10:in each' app/views/tipes/index.html.erb:10 vendor/gems/rspec-rails-1.3.2/lib/spec/rails/extensions/action_view/base.rb:27:inrender’
vendor/gems/rspec-rails-1.3.2/lib/spec/rails/example/view_example_group.rb:170:in
__send__' vendor/gems/rspec-rails-1.3.2/lib/spec/rails/example/view_example_group.rb:170:inrender’
spec/views/tipes/index.html.erb_spec.rb:30
rspec (1.3.0) lib/spec/example/example_methods.rb:40:in
instance_eval' rspec (1.3.0) lib/spec/example/example_methods.rb:40:inexecute’
/usr/local/lib/ruby/1.8/timeout.rb:53:in timeout' rspec (1.3.0) lib/spec/example/example_methods.rb:37:inexecute’
rspec (1.3.0) lib/spec/example/example_group_methods.rb:214:in
run_examples' rspec (1.3.0) lib/spec/example/example_group_methods.rb:212:ineach’
rspec (1.3.0) lib/spec/example/example_group_methods.rb:212:in
run_examples' rspec (1.3.0) lib/spec/example/example_group_methods.rb:103:inrun’
rspec (1.3.0) lib/spec/runner/example_group_runner.rb:23:in run' rspec (1.3.0) lib/spec/runner/example_group_runner.rb:22:ineach’
rspec (1.3.0) lib/spec/runner/example_group_runner.rb:22:in run' rspec (1.3.0) lib/spec/runner/options.rb:152:inrun_examples’
rspec (1.3.0) lib/spec/runner/command_line.rb:9:in `run’
rspec (1.3.0) bin/spec:5
)

Any help v much appreciated …

Ben

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs