[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Tables: Unnecessary duplication of id fields

brian

6/30/2008 4:09:00 PM

=begin

Hello,

I'm fairly new to Ruby, but I am trying to understand the relationship
between database structure and models.

My difficulty is that I have five or so tables all linked together and their
primary key column is a serial number

The tables are a set of tables called:

itemmasters
products
prices
subprices
imprints
etc.

products, prices, and subprices, imprints, etc. belong to itemmasters based
on a serial number

How can I get about linking them without having to have a column in
itemmasters for each of the sub tables?

For instance:

product_id
price_id
subprice_id
imprint_id

This would be somewhat silly as they all contain the same information.
Right?

Thank you,

Brian Anderson

=end



5 Answers

Todd Benson

6/30/2008 4:30:00 PM

0

On Mon, Jun 30, 2008 at 11:09 AM, brian <brian@arielpremium.com> wrote:
> =begin
>
> Hello,
>
> I'm fairly new to Ruby, but I am trying to understand the relationship
> between database structure and models.
>
> My difficulty is that I have five or so tables all linked together and their
> primary key column is a serial number
>
> The tables are a set of tables called:
>
> itemmasters
> products
> prices
> subprices
> imprints
> etc.
>
> products, prices, and subprices, imprints, etc. belong to itemmasters based
> on a serial number
>
> How can I get about linking them without having to have a column in
> itemmasters for each of the sub tables?
>
> For instance:
>
> product_id
> price_id
> subprice_id
> imprint_id
>
> This would be somewhat silly as they all contain the same information.
> Right?
>
> Thank you,
>
> Brian Anderson
>
> =end

While not really a Ruby or Rails question, it seems you have
rows/tuples that point to a singular row in another table. In other
words, reverse it. Have columns in your "subtables" that is the
foreign key of the "master" one.

It's possible I misread your question, though. I do that pretty frequently :-)

Todd

brian

6/30/2008 5:11:00 PM

0

=begin
Thank you for the response.

Maybe it will be clearer if I will just begin with the symptom.

I am getting an error saying "Couldn't find Itemprice without an ID"

This message comes up even despite the fact that this is my controller:

class ItempriceController < ApplicationController
def show
@itemprices = Itemprice.find(params[:ItemSerial])
end
end


I am not finding Itemprice by id according to the above, but still I get
this error.

In my view as a test I have the following:

<% @page_title = "#{@itemprices.Price1}" %>

-Brian

----- Original Message -----
From: "Todd Benson" <caduceass@gmail.com>
To: "ruby-talk ML" <ruby-talk@ruby-lang.org>
Sent: Monday, June 30, 2008 11:29 AM
Subject: Re: Tables: Unnecessary duplication of id fields
>
> While not really a Ruby or Rails question, it seems you have
> rows/tuples that point to a singular row in another table. In other
> words, reverse it. Have columns in your "subtables" that is the
> foreign key of the "master" one.
>
> It's possible I misread your question, though. I do that pretty
> frequently :-)
>
> Todd
>
>

=end



Todd Benson

6/30/2008 8:39:00 PM

0

On Mon, Jun 30, 2008 at 12:10 PM, brian <brian@arielpremium.com> wrote:
> Maybe it will be clearer if I will just begin with the symptom.
>
> I am getting an error saying "Couldn't find Itemprice without an ID"
>
> This message comes up even despite the fact that this is my controller:
>
> class ItempriceController < ApplicationController
> def show
> @itemprices = Itemprice.find(params[:ItemSerial])
> end
> end
>
>
> I am not finding Itemprice by id according to the above, but still I get
> this error.
>
> In my view as a test I have the following:
>
> <% @page_title = "#{@itemprices.Price1}" %>
>
> -Brian

Hmm. I'm no Rails expert, but maybe you should check the type/class
of the object params[:ItemSerial]. Just a thought. Also, your
database setup may be strange for Rails as I alluded to earlier. I've
actually had this error a few times before, but can't remember how I
fixed it :/

Todd

Glen Holcomb

6/30/2008 9:10:00 PM

0

[Note: parts of this message were removed to make it a legal post.]

On Mon, Jun 30, 2008 at 2:38 PM, Todd Benson <caduceass@gmail.com> wrote:

> On Mon, Jun 30, 2008 at 12:10 PM, brian <brian@arielpremium.com> wrote:
> > Maybe it will be clearer if I will just begin with the symptom.
> >
> > I am getting an error saying "Couldn't find Itemprice without an ID"
> >
> > This message comes up even despite the fact that this is my controller:
> >
> > class ItempriceController < ApplicationController
> > def show
> > @itemprices = Itemprice.find(params[:ItemSerial])
> > end
> > end
> >
> >
> > I am not finding Itemprice by id according to the above, but still I get
> > this error.
> >
> > In my view as a test I have the following:
> >
> > <% @page_title = "#{@itemprices.Price1}" %>
> >
> > -Brian
>
> Hmm. I'm no Rails expert, but maybe you should check the type/class
> of the object params[:ItemSerial]. Just a thought. Also, your
> database setup may be strange for Rails as I alluded to earlier. I've
> actually had this error a few times before, but can't remember how I
> fixed it :/
>
> Todd
>
>
It sounds to me like Itemprice.find(params[:ItemSerial]) is returning nil
for whatever reason. This is getting passed along and then rails is trying
to retrieve the item from the database using nil for the id in your view.

If you are doing a find with one argument rails assumes that argument
evaluates to an id value. If you want to match on a field you would need
something like find(:all, :conditions => ["serial = ?",
params[:ItemSerial]])

--
"Hey brother Christian with your high and mighty errand, Your actions speak
so loud, I can't hear a word you're saying."

-Greg Graffin (Bad Religion)

brian

7/8/2008 3:00:00 PM

0

Thanks all for the response. I will have to play with it some more this
week, and update with how it goes...

--
Posted via http://www.ruby-....