私はUser
とClient
の2つのモデルを持っており、以下の関係があります。デフォルトでは、CLIENT_ID => "1":最初のユーザーのデータIDをデフォルトで1に設定するにはどうすればよいですか?
- ユーザー
has_many :clients
- クライアント
belongs_to :user
は、どのように私は、すべての登録ユーザーが自分の最初を持つことができますか?
私はUser
とClient
の2つのモデルを持っており、以下の関係があります。デフォルトでは、CLIENT_ID => "1":最初のユーザーのデータIDをデフォルトで1に設定するにはどうすればよいですか?
has_many :clients
belongs_to :user
は、どのように私は、すべての登録ユーザーが自分の最初を持つことができますか?
したがって、すべての新規ユーザーが最初のクライアントにデフォルト設定されるようにします。デフォルトのID番号を設定したくない場合は、clients
テーブルの最初のClient
のid
に設定します。
users_controller#new
アクションで、あなたがしなければならないすべては、最初のクライアントの
id
に
client_id
フィールドを設定されているので、同様
:
class UsersController < ApplicationController
...
def new
@user = User.new(:client_id => Client.first.id)
end
end
これは新しいUser
レコードがあるときになるようになりますユーザーが明示的に値を変更しない限り、データベース内の最初のClient
レコードを常に指します。
あなたがしなければ、とあなたは、テーブルからそのクライアントを破壊し、その後1
のclient_id
が存在しないレコードを指すだろう、とあなたの関係がするので、あなたが1
にそれをデフォルトにしたくない理由がありますそれが起こった後、すべての新しいユーザーのために中断してください。状況が起こらないと思っても、決して起こらないと思うよりも、この状況に対処できるような方法でコードを書く方が良いです。
ご協力ありがとうございます。 –
しかし、複数の子モデルに対して同じことをするにはどうすればいいですか?User has_many:clients、:services'と答えようとします。 –
あなたは 'Services'を作成していますか?作成時にデフォルトを指定するだけです。これらの新しいモデルをビルドする場合は、ループ内のすべての新しいオブジェクトを繰り返し処理し、適切な '[model] _id'フィールドを手動で設定する必要があります。 – jefflunt