http://stackoverflow.com/questions/3910783/restful-rails-edit-vs-update 这里已经基本解答了我的问题
update 用来更改数据,对应 put edit 则是用来 render view 的,对应 get
只是这样感觉没有理解的很透彻 在写 controller 的时候,找不到一个比较自然的思路……总是会想叉……
希望哪位能提点一下……
edit 就是出一个 form,update 就是执行更新吧。
edit 只是为 update 操作提供个界面而已
你卖了老房子,买了套新房子,于是你搬家了。
搬家你就得到派出所改户口本吧? ( change record ) 那么你到派出所,拿一张表格 ( edit action, 由于是你去 get 一张表,所以用 get 动作 ) 然后你填填填,填好了,把表格交回给派出所让他们给你 update 你的记录 ( update action,由于是你把更改信息提交给服务器,所以用 put 动作 )
edit
update
然后就完事儿了。
这样说楼主就好理解了吧?
#3 楼 @blacktulip 我看糊涂了。
#3 楼 @blacktulip ……这个先容我好好理解一下 再问一个相关的小问题,是不是 edit 不一定在相应的 controller 下面,而 update 必然在 model 的 controller 下面? 比如说,我在 home 页可以 edit post。那么就在 home action 下写@post,但是 update action 依然写在 post controller 下 (比如 ruby on rails tutorial 中就是在首页显示 microposts)
也就是说,controller 中实际有 2 种 action,一种是对于显示的(get),一种是对于创建的(post)。create,update 这些 action 必然是写在相应 model 下的 controller 中的 是这样么?
#5 楼 @cqcn1991 我没看明白......
update edit 这个两个次都是 修改的意思 rails 特意这么设计的,就是为了符合 restful。
如果只用一个词的话,比如 edit, 那么,action 的名字,就是 edit_get edit_put create 和 new 也是同样的问题。
没有什么太深层的含义,就这什么设计的。 千万不要想太多。
#6 楼 @blacktulip ……那就算了……继续写着试试看了
#7 楼 @ery 嗯……不想太多了