Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 Rails模型命名约定_Ruby On Rails 3_Model_Naming Conventions - Fatal编程技术网

Ruby on rails 3 Rails模型命名约定

Ruby on rails 3 Rails模型命名约定,ruby-on-rails-3,model,naming-conventions,Ruby On Rails 3,Model,Naming Conventions,我有一个应用程序,它有项目和用户。我不关心跟踪用户和项目之间的多对多关系,但我感兴趣的是跟踪项目和特定用户之间的多对一关系,即项目经理。理想情况下,我希望在projects表中创建一个名为projectmanager\u id的列,并将其链接到用户。然而,rails惯例要求我使用user\u id。虽然这样做有效,但我觉得语义不太正确。有没有办法两者兼得 我想到的一种方法是使用user\u id和project\u id创建一个projectmanagers表,并在user模型中创建一个has\

我有一个应用程序,它有
项目
用户
。我不关心跟踪
用户
项目
之间的多对多关系,但我感兴趣的是跟踪
项目
和特定
用户
之间的多对一关系,即项目经理。理想情况下,我希望在
projects
表中创建一个名为
projectmanager\u id
的列,并将其链接到
用户
。然而,rails惯例要求我使用
user\u id
。虽然这样做有效,但我觉得语义不太正确。有没有办法两者兼得


我想到的一种方法是使用
user\u id
project\u id
创建一个
projectmanagers
表,并在
user
模型中创建一个
has\u many:projects,:through=>:projectmanagers
,在
project
模型中创建一个
has:user,:through=>:projectmanagers
。有更好的方法吗?

如果将db列保留为用户id,则可以尝试此方法: 在project.rb文件中:

属于\u to:projectmanager,:外键=>“用户\u id”,:类\u名称=>“用户”

并且在user.rb文件中仍然有:

有很多:项目


或者如果您希望db列为projectmanager\u id

在project.rb文件中:

属于:projectmanager,:foreign\u key=>“projectmanager\u id”,:class\u name=>“用户”

在user.rb文件中:

有多个:项目,:外键=>“项目管理器id”,:类=>“项目”


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

属于\u to:projectmanager,:外键=>“用户\u id”,:类\u名称=>“用户”

并且在user.rb文件中仍然有:

有很多:项目


或者如果您希望db列为projectmanager\u id

在project.rb文件中:

属于:projectmanager,:foreign\u key=>“projectmanager\u id”,:class\u name=>“用户”

在user.rb文件中:

有多个:项目,:外键=>“项目管理器id”,:类=>“项目”


我喜欢第二种方法。我试试看。谢谢我喜欢第二种方法。我试试看。谢谢