我有练习、log_entries 和用户。
现在我可以浏览一个练习,我会看到一个“日志条目”列表,每个条目都有“代表”和“权重”的数据。
在我的控制器中,我log_entries
通过点击进行更新,exercises_controller
因此它允许我进行批量更新和保存accepts_nested_attributes_for.
但是我觉得这里有问题并且错误。特别是当我必须将 auser_id
与每个log_entry
.
有没有办法可以处理这个问题,以便我可以以干净的方式更新多条记录,并且只使用 log_entries 控制器?通过练习来更新 log_entries 对我来说没有逻辑意义,但也许我的语义雷达已经关闭。
这是困扰我的代码:
exercises_controller.rb
def update
@exercise = Exercise.find(params[:id])
recording_user_id = current_user.id
recording_user_id = params[:user_id] if (params[:user_id].present? && User.find_by_id(params[:user_id]).is_a_client_of?(current_user))
# associate the log_entries with either current user or client you're recording for.
if params[:exercise].present? && params[:exercise][:log_entries_attributes].present?
params[:exercise][:log_entries_attributes].each do |value|
value[1].merge!(:user_id => recording_user_id)
end
end
respond_to do |format|
if @exercise.update_attributes(params[:exercise])
format.html { redirect_to_back_or_default @exercise, notice: "Exercise was successfully updated." }
format.json { head :ok }
else
format.html { render action: "edit" }
format.json { render json: @exercise.errors, status: :unprocessable_entity }
end
end
end
我怎样才能以更干净的方式处理这个问题?