I have hotels, cars and invoices
hotels has attribute invoice_no in table
cars has attribute invoice_no in table
I create like this :
class Hotel < ActiveRecord
belongs_to :invoice, :foreign_key => ‘invoice_no’
and
class Invoice < ActiveRecord
has_many :hotels, foreign_key => ‘invoice_no’
example i have invoice_no = ‘123456’ and it is in both hotel and invoice
tables.
After that i test in console :
Invoice.find_by_invoice_no(123456).hotels
[]
Hotel.find_by_invoice_no(123456).invoice
nil
how come foreign_key in AR can’t detect it? I check to table in mysql
invoice_no 123456 is existent in table hotels and invoices. Any advice ?
Thank you for your suggestion,
Reinhart
and invoices has attributes : id, invoice_no, customer_id, amount,
created_at
do you need to setup some type of reverse foreign key [?]
On Thu, May 1, 2008 at 1:46 PM, Visit Indonesia 2008
On 1 May 2008, at 20:45, Visit Indonesia 2008 wrote:
Rails takes this to mean 'the invoice_no column on hotel references
the primary key of the invoices table
and
class Invoice < ActiveRecord
has_many :hotels, foreign_key => ‘invoice_no’
Same here. Rails associations always from a foreign key column to a
primary key.
Fred
Why are you storing invoice_no in the Hotels table? Are you creating a
new row for every invoice? Or is that an invoice_id? Like a hotel_id?
As I see it, invoices is basically a join table linking hotels to cars
so you need to set up a has_and_belong_to_many relationship between
hotels and cars through the invoices table. You shouldn’t be storing
invoice data in the Hotel model. That don’t make no sense…
ESPNDev
[email protected] wrote:
Why are you storing invoice_no in the Hotels table? Are you creating a
new row for every invoice? Or is that an invoice_id? Like a hotel_id?
As I see it, invoices is basically a join table linking hotels to cars
so you need to set up a has_and_belong_to_many relationship between
hotels and cars through the invoices table. You shouldn’t be storing
invoice data in the Hotel model. That don’t make no sense…
ESPNDev
This database is not created by me, I have job to develop/maintain
their application. So that database was composed by previous programmer.
IN table invoices has no hotel_id and car_id, only has :
id, invoice_no, customer_id, amount, created_at
hotels table has id, invoice_no, price, amount. And
cars table has id, invoice_no, price, amount.
It is impossible if i have to change invoice_no to be invoice_id,
because there are already queries / records in those tables.
Please give me suggestion to make it works properly as foreign key using
invoice_no.
Thanks
Reinhart
Frederick C. wrote:
On 1 May 2008, at 20:45, Visit Indonesia 2008 wrote:
Rails takes this to mean 'the invoice_no column on hotel references
the primary key of the invoices table
and
class Invoice < ActiveRecord
has_many :hotels, foreign_key => ‘invoice_no’
Same here. Rails associations always from a foreign key column to a
primary key.
Fred
What is the solution Fred? Give me a clue.
Thank you bro,
Reinhart