Hello,
I cannot find the issue and it drives me crazy :(

let's simplify. I have 2 models: saving and purchase_type
a *saving* corresponds to a *purchase_type* e.g. new sourcing or
renegotiation
a saving has exactly one purchase_type and a purchase_type has many
savings.

when I try to display the list of savings and their purchase type
(name, not Id), i get the dreaded "You have a nil object when you
didn't expect it!".

The weirdest thing is that it works for category and subcategory, but
not for purchase type.
Is this a camel casing issue? All the relevant code is below

I'm getting mad, please help :)

Thanks,
P.


Here's the index.rhtml (extracts -- RoR tells me the issue is on the
line with *****):
        <% @saving.each do |s|%>
                <tr>
                        <td><%=s.id%></td>
                        <td><%=s.country.name%></td>
                        <td><%=s.country_reference%></td>
                        <td><%=s.supplier%></td>
                        <td><%=s.buyer%></td>
                        <td><%=s.category.name%></td>
                        <td><%=s.subcategory.name%></td>
*****           <td><%=s.purchaseType.name %></td>

the controller (saving_controller):

class SavingController < ApplicationController
        def index
                @category = Category.find(:all).collect {|c| [ c.name, c.id ] }
                @subcategory = Subcategory.find(:all).collect {|c| [ c.name,
c.id ] }
                @purchaseType = PurchaseType.find(:all).collect {|c| [ c.name,
c.id ] }

                sort_order = params[:sort_by]
                sort_order ||= 'id' # for default sort
                @saving = Saving.search(params[:search], params[:page], 
sort_order)
        end
end

the saving model (saving - table name = savings):

class Saving < ActiveRecord::Base
        validates_presence_of   :supplier,
                                                        :a_saving,
                                                        :a_spend,
                                                        :country_id,
                                                        :category_id,
                                                        :subcategory_id,
                                                        :buyer,
                                                        :purchaseType_id,

        validates_numericality_of       :a_saving, :a_spend

        belongs_to :category
        belongs_to :purchaseType
        belongs_to :subcategory

        def self.search(search, page, sort_order)
                search='%' if search=='' || search=='Type your search term'
                paginate        :page => page,
                                        :conditions => ['supplier like 
?',"%#{search}%"],
                                        :order => sort_order
        end

end

the purchase_type model (model name = PurchaseType -table name =
purchase_types):

class PurchaseType < ActiveRecord::Base
        validates_presence_of   :name
        has_many :saving
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 [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to