如何让current_user中的每条记录在user_id上名副其实? Rails
How to pass current_user in every record on user_id veritable? Rails
我想将 current_user 中的 user_id
传递给嵌套表单中的每个关联。
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
我遇到了这个错误
undefined method `user_id='
我需要一种方法如何给每个 box
和 order
user_id = current_user。数据库中的所有表都有 user_id 列,每个模型都有 belongs_to :user
.
@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
我想将 current_user 中的 user_id
传递给嵌套表单中的每个关联。
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
我遇到了这个错误
undefined method `user_id='
我需要一种方法如何给每个 box
和 order
user_id = current_user。数据库中的所有表都有 user_id 列,每个模型都有 belongs_to :user
.
@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