I am attempting to tie a Project to Projectparts to Parts and  I
believe the relationship should be one-to-many, then many-to-one.  My
goal is to build the Parts table so that this table can grow and the
Parts descriptions can be re-used in different Projects (ultimately
tie this in to an autocomplete plug-in so the user doesn''t have to re-
type a part every time, but I''m not there yet).  I had the application
working through to the Project - Projectparts relationship, I am now
trying to add the description component from the Part table.
I think I''ve tracked down my problem to the _projectpart partial of
code that I''ve implemented for this.  Here''s the partial:
    <div class="fields">
      <%= f.text_field :qty, :size => 3 %>
      <% f.fields_for :parts do |builder| %>      #  <======I think
problem is here.
         <%= builder.text_field :description, :size => 50 %>
      <% end %>
      <%= remove_child_link "Delete", f %>
    </div>
As the code is now, the ''New'' view will render, but when I
save the
data from the UI, I get an unknown attribute error in my
''Create'':
    ActiveRecord::UnknownAttributeError in ProjectsController#create
    unknown attribute: parts
However, when I change the :parts reference to :part, the New screen
will not render & I get a nil object error:
    NoMethodError in Projects#new
    Showing app/views/projects/_projectpart.html.erb where line #10
raised:
    You have a nil object when you didn''t expect it!
    You might have expected an instance of ActiveRecord::Base.
    The error occurred while evaluating nil.new_record?
So I''m thinking I''m not referencing this correctly. 
I''ve tried using
@project.projectpart.description, @project.projectpart & other
variations, but not sure if the model is set up correctly in the first
place (the description is the ''one'' at the end of the
one-to-many /
many-to-one relationship).
Any thoughts?  Thanks in advance.
For reference:
=======================Models:
class Project < ActiveRecord::Base
   validates_presence_of :name
    has_many :projectparts, :dependent => :destroy
    accepts_nested_attributes_for :projectparts, :reject_if => lambda
{ |a| a.values.all?(&:blank?) }, :allow_destroy => true
    def projectpart_attributes=(projectpart_attributes)
      projectpart_attributes.each do |attributes|
      projectpart.build(attributes)
      end
    end
end
class Projectpart < ActiveRecord::Base
   belongs_to :project
   has_one :part
   accepts_nested_attributes_for :parts, :reject_if => lambda { |a|
a.values.all?(&:blank?) }
end
class Part < ActiveRecord::Base
  has_and_belongs_to_many :projectparts
end
My db schema - the foreign key for accessing the Part description is
in the projectparts table since there should be many of these records
and I don''t want to unnecessarily increase the number of records in
the Parts table, but perhaps this is causing part of the problem?
  create_table "projects", :force => true do |t|
    t.string   "name"
    t.string   "description"
  end
  create_table "projectparts", :force => true do |t|
    t.integer  "project_id"
    t.integer  "part_id"
    t.datetime "created_at"
    t.datetime "updated_at"
    t.integer  "qty"
  end
  create_table "parts", :force => true do |t|
    t.string   "description"
    t.datetime "created_at"
    t.datetime "updated_at"
  end
-- 
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.