Ruby on rails 集合属性在多个关系表中
我有一个Ruby on rails 集合属性在多个关系表中,ruby-on-rails,activerecord,ruby-on-rails-4,Ruby On Rails,Activerecord,Ruby On Rails 4,我有一个组和一个用户,它们通过一个has\u many:through关系进行关联。My:through表称为Groupuser。此表具有组id、用户id和状态。在创建我的组时,我允许将当前用户的状态设置为1(默认值为0) 在我的组中设置当前的_用户完全没有问题,效果非常好;但我不知道它的状态。这就是我现在拥有的: def create @group = Group.new(group_params) respond_to do |format| if @grou
组
和一个用户
,它们通过一个has\u many:through关系进行关联。My:through表称为Groupuser
。此表具有组id、用户id和状态。在创建我的组时,我允许将当前用户的状态设置为1(默认值为0)
在我的组中设置当前的_用户完全没有问题,效果非常好;但我不知道它的状态。这就是我现在拥有的:
def create
@group = Group.new(group_params)
respond_to do |format|
if @group.save
@group.users << current_user
@group.groupusers.status << 1
format.html { redirect_to @group, notice: 'done' }
format.json { render action: 'show', status: :created, location: @group }
else
format.html { render action: 'new' }
format.json { render json: @group.errors, status: :unprocessable_entity }
end
end
end
试一试
@group.groupusers.status=1
@小组,救命
@group.groupusers
是一个数组,activerecord关系。您不能设置这样的属性,您需要一个接一个地设置它,或者在将其附加到组之前设置它
@group.groupusers.each do |gu|
gu.status = 1
gu.save
end
或
groupuser=groupuser.new user\u id:current\u user.id,状态:1
@group.groupusers只对我要添加的用户有效吗?顺便说一句,我得到了这个错误:undefined method
status'for#`哦,对了,我的错。很高兴@MurifoX能够为您提供一个有效的解决方案。感谢您的努力!
@group.groupusers.each do |gu|
gu.status = 1
gu.save
end
groupuser = GroupUser.new user_id: current_user.id, status: 1
@group.groupusers << groupuser