Ruby on Rails中的RESTful更新3

时间:2011-09-05 16:21:57

标签: ruby-on-rails ruby

由于这里需要解释的原因,我不得不在我的控制器中创建自己的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]是否为零更好的方法?

谢谢!

1 个答案:

答案 0 :(得分:0)

AFAIK,在更新时,只要验证允许,就可以“取消”字段“无效”。如果您的意思是您的操作只接收一组受限制的参数,更新调用update_attributes,我想但我不确定它只会更改您给它的参数,所以

X.update(params[:id], :par1 => "foo")

应更新par1并保留其余属性,

X.update(params[:id], :par1 => nil)

应该使par1无效。但我不是百分百肯定,你应该尝试使用控制台。