如何在创建新记录时传递current_user?

时间:2015-12-10 13:13:15

标签: ruby-on-rails ruby ruby-on-rails-4 associations

创建current_user时,我需要为user_id传递entity。它的工作方式与我不同。

def create
    @entity = Entity.new(entity_params, :user_id = current_user)
    ...
end

在Schema中,:user_idEntity表的整数。我在belongs_to :user

中也有models/entity.rb个关联

3 个答案:

答案 0 :(得分:2)

new接受参数哈希,因此它应该与:

一起使用
@entity = Entity.new(entity_params.merge(user: current_user))

另一种方式是

@entity = Entity.new(entity_params).tap do |entity|
  entity.user = current_user
end

答案 1 :(得分:1)

更好的方法:

#app/controllers/entities_controller.rb
class EntitiesController < ApplicationController
   def create
     @entity = current_user.entities.new entity_params
     @entity.save
   end
end

答案 2 :(得分:1)

您也可以尝试:

def create
  @entity = current_user.entities.create(entity_params)
end