2011-10-23 12 views
2

私は、Userとhas_many関係を持つモデルグループを持っています。私のコードでは、新しいユーザーをグループに追加したいと考えています。コレクションに新しいオブジェクトを追加する

私は

newUserID = 1 
@group.users.build(:id => newUserID) 
@group.save 

を試してみましたが、私は、ユーザーが無効であるというエラーを取得:この特定のケースで

#<ActiveRecord::Errors:0x7f69224f8cc8 @errors=#<OrderedHash {"users"=>[#<ActiveRecord::Error:0x7f69224257b0 @attribute=:users, @options={}, @message=:invalid, @base=#<Group id: nil, group_id: 1, created_at: nil, updated_at: nil>, @type=:invalid> 

私はこの特にグループが存在しない、まだなく、作成する必要があることを指摘しなければならないがセーブする時にも。

私はあなたが最初のグループを保存する必要があり

答えて

1

(おそらくコンテンツを含むページの数百人がこれに特に関連していないので、することは:-(私の方法で来る)グーグルで試みたが、有益な何かを見つけることができませんでした:

そのない問題は、ルビーはこれに対処することができ、まだIDを持っているdoesntのグループにユーザーを追加する
@group.save 
@group.users.create(:id => newUserID) # this creates & saves your user 
3
@group.users << User.create(:attr => 'value',...) # Create a new User and add it to the group (Id will be assigned automaticly) 
@group.users << User.find(user_id) # Add an existing user to the association 

イムかなり確信している。

しかし、OPはコードとは異なる何かを
+0

。私はAGRあなたが言っていることと一緒にeeしますが、どのように*あなたがユーザーの事柄を追加するか。 –

+0

実際には2行目が面白そうです。 (私の言葉は誤っているかもしれません。「新しいユーザーを追加する」というのは、新しく作成されたユーザーオブジェクトではなく、グループに新しい既存のユーザーだけを意味します)。 – Frankie

関連する問題