小编And*_*Bas的帖子

Rails has_many:在关联表中使用不同的列名

我目前有两种不同的型号:UserProject.该User模型有三种类型的用户 - 所有者,承包商和客户.我想将多个承包商分配到一个项目.我正在尝试使用has_many :through关联,如下所示:

Class User
   has_many :assignments
   has_many :projects, :through => :assignments 

Class Project
   has_many :assignments
   has_many :contractors, :through => :assignments

Class Assignment
   belongs_to :user
   belongs_to :project
Run Code Online (Sandbox Code Playgroud)

我的问题是使用contractor_idassignments表代替user_id.

在我的assignments表中,我目前有列contractor_idproject_id.如果我使用的话,一切似乎都有效user_id,但是在我看来,这会让事情变得相当混乱.

我怎么做到这一点?

ruby-on-rails ruby-on-rails-3

9
推荐指数
1
解决办法
9832
查看次数

Rails模型验证以检查属性的值

我有一个Project模型和一个User模型.项目必须具有客户端(用户类),因此Project模型具有client_id外键.

User模型有一个type属性,将包含3如果用户是一个客户端.

我想验证,当一个项目被分配给客户端,这@user.type3.

Project.rb

validates :client_id, presence: true, #@user.type must be 3
belongs_to :client, :class_name => User, :foreign_key => :client_id
Run Code Online (Sandbox Code Playgroud)

User.rb

#constants
TYPES = {
    :manager => 1,
    :contractor => 2,
    :client => 3
}
Run Code Online (Sandbox Code Playgroud)

不确定如何进行验证.我阅读了有关验证的rails指南,但似乎仍无法获得解决方案.有任何想法吗?

ruby ruby-on-rails ruby-on-rails-3

3
推荐指数
1
解决办法
1904
查看次数

标签 统计

ruby-on-rails ×2

ruby-on-rails-3 ×2

ruby ×1