如何从控制器Ruby On Rails传递表中的用户标识

时间:2014-05-03 18:06:18

标签: ruby-on-rails ruby

当我创建新传感器时,我一直在努力将用户ID从我的应用程序中的当前用户传递到传感器表

在传感器控制器中我有这个代码

def create
  @sensor = Sensor.new(sensor_params)

  respond_to do |format|
    if @sensor.save
      format.html { redirect_to @sensor, notice: 'Sensor was successfully created.' }
      format.json { render action: 'show', status: :created, location: @sensor }
    else
      format.html { render action: 'new' }
      format.json { render json: @sensor.errors, status: :unprocessable_entity }
    end
  end
end


def sensor_params
  params.require(:sensor).permit(:name, :typeOfSensor, :privacy,:user_id)
end

我已使用此代码

 @sensor = current_user.sensors.build(:current_user_id => params[:current_user_id])

但它只传递传感器表中的id而没有剩下的属性

如何合并代码以便它传递所有参数(name,typeOfSensor等,并且它还传递创建此传感器的用户的id

的正确方法

提前致谢

2 个答案:

答案 0 :(得分:0)

合并确实是答案。

sensor_params.merge(current_user_id: current_user.id) 

答案 1 :(得分:0)

你确定你需要来自params的current_user_id吗?你已经拥有当前用户,使用param是危险的,用户可以编辑代码并为其他用户创建传感器。

justo do

current_user.sensors.build(sensor_params)

你完成了