2011-12-15 24 views

答えて

1

したがって、すべての新規ユーザーが最初のクライアントにデフォルト設定されるようにします。デフォルトのID番号を設定したくない場合は、clientsテーブルの最初のClientidに設定します。

だから、あなたの users_controller#newアクションで、あなたがしなければならないすべては、最初のクライアントの idclient_idフィールドを設定されているので、同様

class UsersController < ApplicationController 

    ... 

    def new 
    @user = User.new(:client_id => Client.first.id) 
    end 

end 

これは新しいUserレコードがあるときになるようになりますユーザーが明示的に値を変更しない限り、データベース内の最初のClientレコードを常に指します。

あなたがしなければ、とあなたは、テーブルからそのクライアントを破壊し、その後1client_idが存在しないレコードを指すだろう、とあなたの関係がするので、あなたが1にそれをデフォルトにしたくない理由がありますそれが起こった後、すべての新しいユーザーのために中断してください。状況が起こらないと思っても、決して起こらないと思うよりも、この状況に対処できるような方法でコードを書く方が良いです。

+0

ご協力ありがとうございます。 –

+0

しかし、複数の子モデルに対して同じことをするにはどうすればいいですか?User has_many:clients、:services'と答えようとします。 –

+0

あなたは 'Services'を作成していますか?作成時にデフォルトを指定するだけです。これらの新しいモデルをビルドする場合は、ループ内のすべての新しいオブジェクトを繰り返し処理し、適切な '[model] _id'フィールドを手動で設定する必要があります。 – jefflunt

関連する問題