Hi
I have models user and user_status An user always elongs to a
particular status at any time Status table has predefined values like
“pending”,“approved” etc My question is what should be the table
structure and relation between these models? I am trying like putting
status_id in users table And the relation is
user belongs_to user_status
If so user_status has_one user Is this correct?Please guide me
Tom
On Jan 5, 6:51 am, Tom M. [email protected] wrote:
Hi
I have models user and user_status An user always elongs to a
particular status at any time Status table has predefined values like
“pending”,“approved” etc My question is what should be the table
structure and relation between these models? I am trying like putting
status_id in users table And the relation is
user belongs_to user_status
If so then your table should be called user_statuses and the column
should be user_status_id.
If so user_status has_one user Is this correct?Please guide me
No - since for a given status there are potentially many users in that
status (so it’s a has_many)
Fred
Tom
Posted viahttp://www.ruby-forum.com/.
–
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.
2.7 Choosing Between belongs_to and has_one
If you want to set up a 1–1 relationship between two models, you’ll
need to add belongs_to to one, and has_one to the other. How do you
know which is which?
The distinction is in where you place the foreign key (it goes on the
table for the class declaring the belongs_to association), but you
should give some thought to the actual meaning of the data as well.
The has_one relationship says that one of something is yours – that
is, that something points back to you. For example, it makes more
sense to say that a supplier owns an account than that an account owns
a supplier. This suggests that the correct relationships are like
this:
class Supplier < ActiveRecord::Base
has_one :account
end
class Account < ActiveRecord::Base
belongs_to :supplier
end
The corresponding migration might look like this:
class CreateSuppliers < ActiveRecord::Migration
def self.up
create_table :suppliers do |t|
t.string :name
t.timestamps
end
create_table :accounts do |t|
t.integer :supplier_id
t.string :account_number
t.timestamps
end
end
def self.down
drop_table :accounts
drop_table :suppliers
end
end
I just pasted from The wonderful rails guides:http://
hope it helps,
Lake
On Jan 5, 1:51 am, Tom M. [email protected] wrote:
If so user_status has_one user Is this correct?Please guide me
Tom
Posted viahttp://www.ruby-forum.com/.
–
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.
Hi Frederick
Thanks for your reply. So what i understood is, tables are users and
user_statuses .And users table has a column user_status_id Also the
relation is
user belongs_to user_status
user_status has_many users
Is this right?
Tom