由于这里需要解释的原因,我不得不在我的控制器中创建自己的RESTful动作,这样就可以有四个相应的动作:
x_create x_read x_update x_delete
使用相应的POST / GET / DELETE / PUT方法。我想知道,如果您创建自己的操作,没有任何文档似乎建议UPDATE的工作方式:
def x_update
X.update(params[:id], :par1 => params[:par1], :par2 => params[:par2])
end
会起作用,但是如果:par2用于包含字符串并且更新没有它? REST是否规定更新必须始终至少包含原始内容(如果未修改)?或者有没有比检查params [:par2]是否为零更好的方法?
谢谢!
答案 0 :(得分:0)
AFAIK,在更新时,只要验证允许,就可以“取消”字段“无效”。如果您的意思是您的操作只接收一组受限制的参数,更新调用update_attributes,我想但我不确定它只会更改您给它的参数,所以
X.update(params[:id], :par1 => "foo")
应更新par1并保留其余属性,
X.update(params[:id], :par1 => nil)
应该使par1无效。但我不是百分百肯定,你应该尝试使用控制台。