Rails: 在params中查找或初始化然后合并
Rails: Find or initialize and then merge in params
我在我的控制器中使用 find_or_initialize_by
然后想将附加参数应用到记录,无论是新的还是现有的。这可以用 Railsy 的方式来做,还是我必须遍历参数?
def create
re_evaluation = @client.re_evaluations.find_or_initialize_by(program_id: re_evaluation_params[:program_id], check_in_id: re_evaluation_params[:check_in_id])
# apply remaining re_evaluation_params here
if re_evaluation.save
render json: re_evaluation, status: :created
else
render json: re_evaluation.errors.full_messages, status: :unprocessable_entity
end
end
您应该能够像往常一样分配参数。
re_evaluation.assign_attributes(re_evaluation_params)
if re_evaluation.save
...
我在我的控制器中使用 find_or_initialize_by
然后想将附加参数应用到记录,无论是新的还是现有的。这可以用 Railsy 的方式来做,还是我必须遍历参数?
def create
re_evaluation = @client.re_evaluations.find_or_initialize_by(program_id: re_evaluation_params[:program_id], check_in_id: re_evaluation_params[:check_in_id])
# apply remaining re_evaluation_params here
if re_evaluation.save
render json: re_evaluation, status: :created
else
render json: re_evaluation.errors.full_messages, status: :unprocessable_entity
end
end
您应该能够像往常一样分配参数。
re_evaluation.assign_attributes(re_evaluation_params)
if re_evaluation.save
...