I have two tables, user & provider and I’m struggling to set up the
association between them.
A simplified table structure for the two is:
CREATE TABLE users (
id integer not null,
login string not null,
password string not null
)
CREATE TABLE providers (
id integer not null,
user_id integer not null,
…
)
and I’ve used the generater to create two modules, as follows (cut
down)
class User < ActiveRecord::Base
has_one :provider
def invoices_raised
provider.get_invoices
end
…
end
class Provider < ActiveRecord::Base
has_many :invoices
belongs_to :user
def get_invoices
invoices.find(:all)
end
end
I have a controller that calls invoices_raised :
class AccountController < ApplicationController
model :user
before_filter :get_invoices
def get_invoices
@user = User.find(@session[‘user’].id)
@invoices_raised = @user.invoices_raised
end
…
end
but inside the invoices_raised method I get the following error:
You have a nil object when you didn’t expect it!
The error occured while evaluating nil.get_invoices
I thought that using belongs_to & has_one was supposed to implicitly
create a provider instance for me?
–
-S
Sports Photography in South Yorkshire & Derbyshire
http://www.stuartgrimshaw.co.uk