Si vous voulez utilser activerecord sur une base de données existante et qui ne suit pas les conventions "activerecord", vous aurez surement besoin de spécifier le nom de la clef étrangère, voilà comment faire:
class Task < ActiveRecord::Base set_table_name "tasks" set_primary_key "task_id" has_many :task_logs, :foreign_key => "task_log_task" end
class TaskLog < ActiveRecord::Base set_table_name "task_log" set_primary_key "task_log_id" belongs_to :task, :foreign_key => "task_log_task" end
2 commentaires:
bonjour,
est-ce qu'on peut gérer plusieurs foreign keys sur une même table avec ce système ?
par exemple j'ai une table user avec plusieurs fois des foreign keys sur un table de villes (ville de naissance, ville actuelle, ville du lieu de travail par ex), est-ce que je vais pouvoir spécifier plusieurs foreign keys comme ceci
belongs_to :user, :foreign_key => "ville_naissance"
belongs_to :user, :foreign_key => "ville_actuelle"
belongs_to :user, :foreign_key => "ville_travail"
Je ne sais pas je n'ai jamais eu besoin de le faire mais je suppose que oui.
Regarde dans la documentation de "belongs_to" ;) http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#M000657
Enregistrer un commentaire