Rails模型命名约定

时间:2011-11-17 03:35:02

标签: ruby-on-rails-3 model naming-conventions

我的应用程序有projectsusers。我并不关心跟踪usersprojects之间的多对多关系,但我有兴趣跟踪projects与特定关系之间的多对一关系user,这是项目经理。理想情况下,我想在名为projects的{​​{1}}表格中创建一个列,并将其链接到projectmanager_id。但是,rails惯例规定我使用user代替。虽然这有效,但我觉得语义不是很正确。有两种方法可以同时拥有吗?

我想到的一种方法是使用user_idprojectmanagers创建一个user_id表,并在project_id模型中设置has_many :projects, :through=> :projectmanagers,{{ 1 {}在user模型中。还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

如果将db列保存为user_id,则可以尝试此操作: 在project.rb文件中:

  

belongs_to:projectmanager,:foreign_key => “user_id”,:class_name => “用户”

在你的user.rb文件中仍有:

  

has_many:projects


或者,如果您希望db列为projectmanager_id

在project.rb文件中:

  

belongs_to:projectmanager,:foreign_key => “projectmanager_id”,:class_name => “用户”

在您的user.rb文件中:

  

has_many:projects,:foreign_key => “projectmanager_id”,:class => “项目”