Rails:更新控制器中的记录

时间:2012-10-10 05:13:40

标签: ruby-on-rails-3 syntax

我已将此方法放入我的控制器中,以便锁定用户文档,但每个文档的记录保持不变。

def lock
  @doc = Doc.find(params[:id])
    respond_to do |format|
      params[:locked] = true
      format.html { redirect_to share_path(@doc) }
      format.json { render json: @doc }
    end
end

我知道params[:locked]是不起作用的部分。正确的语法是什么?我也试过@doc.update_attribute(:locked, true)但没有成功。

干杯。

1 个答案:

答案 0 :(得分:1)

Params是通过表单提交的属性的哈希值。它与数据库无关,不会保存在任何地方。实际上,您只应该从中读取数据,而不是修改它。要更新记录,您应该调用记录本身的方法,例如saveupdate_attribute

所以@doc.update_attribute(:locked, true)应该适用于你的情况。