当我创建新传感器时,我一直在努力将用户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
的正确方法提前致谢
答案 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)
你完成了