Nil object for nested resource

Hi all,

I have 2 models with a standard 1 to many relationship. I’m also
using
REST on the two models and have added the appropriate code to the
routes.rb file.

scorecard.rb:

class Scorecard < ActiveRecord::Base
has_many :attributes
end

attribute.rb:

class Attribute < ActiveRecord::Base
belongs_to :scorecard
end

routes.rb:

map.resources :scorecards do |scorecard|
scorecard.resources :attributes
end

My problem is that I want to show a single scorecard with all it’s
attributes. I then want to display a “New attribute” link to add a
new
attribute to the current scorecard.

scorecards/show.rhtml:

<%= label_for(“scorecard”) %>
<%=h @scorecard.name %>

<%= label_for(“template”) %>
<%=h @scorecard.template %>

Attributes:

<% for attribute in @scorecard.attributes %> <% end %>
<%=h attribute.name %> <%=h attribute.weight %>
<%= link_to "New Attribute", new_attribute_path(@scorecard) %>

However I get the message for line 17 (last line) when I try to view
this page,

You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.to_sym

I have tried checking against various REST and Rails books and
articles,
and I thought I had used the correct syntax for creating a link to a
new
attribute from this scorecard.

Any help on this would be greatly appreciated.

Thanks,

Matthew

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