我有2个模型,User
和Client
具有以下关系。
has_many :clients
belongs_to :user
如何让所有注册用户拥有他们的第一个:client_id => “1”,默认情况下?
答案 0 :(得分:1)
因此,您希望所有新用户都默认使用第一个客户端。您不想设置默认ID号,您要执行的操作是将其设置为id
表中第一个Client
的{{1}}。
因此,在您的clients
操作中,您所要做的就是将users_controller#new
字段设置为第一个客户端的client_id
,如下所示:
id
这使得当保存新的class UsersController < ApplicationController
...
def new
@user = User.new(:client_id => Client.first.id)
end
end
记录时,除非用户自己显式更改了值,否则它将始终指向数据库中的第一个User
记录。
您不希望将其默认为Client
的原因是因为如果您这样做,并且您曾从表中销毁该客户端,那么1
client_id
将指向对于不存在的记录,在此之后,您的关系将为所有新用户中断。即使您认为情况不会发生,最好以能够处理这种情况的方式编写代码,而不是认为它永远不会发生。