创建新记录时如何传递current_user?
How to pass current_user when creating new record?
我需要在创建 entity
时为 user_id
传递 current_user
。它的工作方式与我不同。
def create
@entity = Entity.new(entity_params, :user_id = current_user)
...
end
在架构中,我将 :user_id
作为 Entity
table 的整数。我在 models/entity.rb
中也有 belongs_to :user
协会
new
接受参数散列,因此它应该适用于:
@entity = Entity.new(entity_params.merge(user: current_user))
另一种方法是
@entity = Entity.new(entity_params).tap do |entity|
entity.user = current_user
end
更好的方法:
#app/controllers/entities_controller.rb
class EntitiesController < ApplicationController
def create
@entity = current_user.entities.new entity_params
@entity.save
end
end
您也可以试试:
def create
@entity = current_user.entities.create(entity_params)
end
我需要在创建 entity
时为 user_id
传递 current_user
。它的工作方式与我不同。
def create
@entity = Entity.new(entity_params, :user_id = current_user)
...
end
在架构中,我将 :user_id
作为 Entity
table 的整数。我在 models/entity.rb
belongs_to :user
协会
new
接受参数散列,因此它应该适用于:
@entity = Entity.new(entity_params.merge(user: current_user))
另一种方法是
@entity = Entity.new(entity_params).tap do |entity|
entity.user = current_user
end
更好的方法:
#app/controllers/entities_controller.rb
class EntitiesController < ApplicationController
def create
@entity = current_user.entities.new entity_params
@entity.save
end
end
您也可以试试:
def create
@entity = current_user.entities.create(entity_params)
end