Je suis en train la construction d'un simple projet à partir de zéro en utilisant Rails 3. En règle générale, les modèles sont comme:Dans Ruby on Rails, comment un modèle "has_many" et "belongs_to" peuvent-ils utiliser un autre champ que l'ID principal?
class Student < ActiveRecord::Base
has_many :awards
end
class Award < ActiveRecord::Base
belongs_to :student
end
et nous utilisons la award.id
et student.id
pour obtenir les enregistrements correspondants.
Mais s'il est
class Company < ActiveRecord::Base
has_many :stock_quotes
end
class StockQuote < ActiveRecord::Base
belong_to :company
end
Dans ce cas, nous pouvons utiliser le symbole de la société, comme MSFT
ou GOOG
pour identifier l'entreprise, au lieu d'utiliser la company.id. Par exemple, dans stock_quotes, nous pouvons stocker directement le symbole de la société au lieu d'utiliser company.id
. Dans ce cas, existe-t-il un moyen de le spécifier dans les modèles?
êtes-vous sûr? Il semble que les deux doivent être ': primary_key =>: symbole,: foreign_key =>: symbole' –
Je ne suis pas totalement sûr (c'est définitivement non testé) mais ça fonctionne de la même façon que si StockQuote avait une colonne : company_id. Rails ramasser automatiquement sur la clé étrangère (company_id) à la société, puis utiliser le PK: id pour faire la jointure. Ceci est en train de se chevaucher. Si quelque chose, je peux les avoir inversés. – brycemcd