2011-03-15 177 views
0

我有一些问题,努力建设有几个模型和关系船只它们之间的Rails应用程序时,了解...轨道模型关系和迁移

如果我参加一个基本的例子,像模特组,模型用户和模型车

class Group < ActiveRecord::Base 
    has_many :users 
end 
class User < ActiveRecord::Base 
    belongs_to :group 
    has_many :cars 
end 
class Car < ActiveRecord::Base 
    belongs_to :user 
end 

将这些关系船语句自动创建以下功能:

  • group.users
  • user.group
  • user.cars
  • car.user

看来,我们有时需要有建立在移民“引用”(如添加在车表对用户的参考),但这是否总是需要? 在这种情况下,在模型中创建迁移和添加关系语句有什么不同?我有时会觉得这是用于相同的目的。

非常感谢您的帮助,

问候,

吕克

回答

2

该协会声明是那里唯一的Rails。您必须在数据库中定义外键(引用),以便Rails可以正确保存数据。

请记住,尽管有所有的魔力,它仍然受到关系数据库的支持,所以从长远来看,良好的实践将带来回报。

+0

嗯......所以你的意思是说,在定义模型中的关系时,函数(如.users,.cars,...)不会被创建? – Luc 2011-03-15 22:43:00

+0

不,它们是创建的,但它们在您将更改应用到数据库之前不会运行。 – 2011-03-15 22:44:24