ruby on rails - Fill a table with a foreign key by default values -
i hope me that. have 2 table, want them related :
create_table "personals", force: :cascade |t| t.string   "trigramme" t.string   "nom" t.string   "prenom" t.string   "poste" t.text     "bio" t.integer  "user_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false end and
create_table "users", force: :cascade |t| t.string   "email",                  default: "", null: false t.string   "encrypted_password",     default: "", null: false t.string   "reset_password_token" t.datetime "reset_password_sent_at" t.datetime "remember_created_at" t.integer  "sign_in_count",          default: 0,  null: false t.datetime "current_sign_in_at" t.datetime "last_sign_in_at" t.string   "current_sign_in_ip" t.string   "last_sign_in_ip" t.datetime "created_at",                          null: false t.datetime "updated_at",                          null: false end i have executed :
rails generate model personal trigramme:string nom:string ... user:references in order create foreign key , put belong_to (in personal) , has_one (in user) in model files.
do know how generate default value in table personal when user create account ? mean create new row in personal table, liked row created in user when account created?
my table user correctly fill when user create account.
best practice create has_one relation use activerecord callback before_create. activerecord automagically fills in foreign key in child record after saves parent record (on create). activerecord saves child record part of creating parent record.
class user < activerecord::base   has_one :personal   before_create :generate_profile    protected    def generate_profile     self.build_personal   end  end 
Comments
Post a Comment