RESTful&Rails学习笔记(一):令人郁闷的observe_field

最近在学习RESTful,并且使用rails来实践一把。不过今天使用observe_field着实令我郁闷不已。

一个用户注册的例子:

  1. 用户名要求唯一
  2. 注册时,输入用户名后检查用户名是否唯一,如唯一则继续注册,否则提示用户

根据我理解的RESTful,我是如下划分资源的:

  1. 用户资源:对应UsersController,包含6个经典方法 index,new,create,update,show,edit,不包含destroy,因为不能删除用户。
  2. 用户名资源(注意了,跟上面的“用户资源”不同):对应UserNameController,只有一个方法--show。因为只需要检查用户名是否存在,我认为只需要提供对应HTTP GET方法的show即可

在用户注册的页面,我使用observe_field,用ajax提交检查用户名的请求,即使用HTTP GET请求/user_name/your_name,问题就出在这里了,observe_field方法生成的js代码提交请求的时候,默认是使用POST的,并且没有提供选项更改HTTP方法,在这个场景里,按我划分的资源,没法使用符合REST风格的实现去完成我的需求。除非我自己写js代码。

不知道是我用得不对,还是rails有这个缺憾。继续学习...

相关推荐