Remco Swoany wrote:
Abhi Manyu wrote:
Remco Swoany wrote:
Hi,
I have a users table(below) and now i want to create a new table "occupation" so the users can fill in there occupation and store it in the occupation-table.
Question: how can i realize a realionship between the users-table and the occupation-table?
class CreateUsers < ActiveRecord::Migration def self.up create_table :users do |t| t.column :username, :string, :limit => 64, :null => false t.column :email, :string, :limit => 128, :null => false t.column :hashed_password, :string, :limit => 64 t.column :enabled, :boolean, :default => true, :null => false t.column :profile, :text t.column :created_at, :datetime t.column :updated_at, :datetime t.column :last_login_at, :datetime end add_index :users, :username end
def self.down drop_table :users end end
Thanks..
Grtz..remco
Hi, If a user is having many occupations then you can give like has_many :occupations in CreateUsers and belongs_to :occupation, :class_name => "UserOccupation", :foreign_key => "user_occupation_id"
in Occupation table Hi,
Thanks for you're quick reponse...
But must i add a column user_occupation_id in the users-table?
remco
Actually, if a user has many occupations, then the relationship will need to be modeled as a has_and_belongs_to_many (HABTM) and you will need to create a table called user_occupations_users table to model the many-to-many relationship. Search for has_and_belongs_to_many (HABTM) and you should be able to get enough to get started.
On the other hand, if a user can belong to only one occupation, then you need to add a table called occupations and in your user table, you need to occupation_id as an INT field. You can create a new migration that adds the column to the table. Then, user belongs_to occupation and occupation has_many users.
Cheers, Mohit. 10/24/2007 | 4:58 PM.