我想将user_id
从current_user传递给我的嵌套表单中的每个关联。
def create
@entity = Entity.new(entity_params.merge(user: current_user))
# entity has_many :boxes and in form i'm making them more than one
@entity.boxes.user_id = current_user.id if current_user
# entity has_many :orders and in form i'm making them more than one
@entity.orders.user_id = current_user.id if current_user
end
我收到此错误
未定义的方法`user_id ='
我需要一种方法如何给每个box
和order
user_id = current_user。数据库中的所有表都有user_id列,每个模型都有belongs_to :user
。
答案 0 :(得分:0)
@entity.boxes
和@entity.orders
属于<ActiveRecord::Associations::CollectionProxy []>
类型,即您必须对其进行迭代才能获得具有的box
和order
个别项目关联的user
:
@entity.boxes.each do |box|
box.user_id = current_user.id if current_user.present?
end
如果要将更改保存到数据库,还可以使用:
box.update!(user: current_user) if current_user.present?
P.S。我想User
has_many
:boxes
和:orders