我有一个与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>
在这种特殊情况下,我应该指出,这个特殊群体尚不存在,但应该在调用保存时创建。
我尝试使用谷歌搜索,但无法找到任何有用的东西(可能因为数百页内容与此无关的内容以我的方式出现:-()
答案 0 :(得分: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
我非常确定将用户添加到尚未拥有ID的组中并不是问题,ruby可以处理此问题。
答案 1 :(得分:1)
您应首先保存该组:
@group.save
@group.users.create(:id => newUserID) # this creates & saves your user