Rails 请教 mongodb 的元编程问题

mobiwolf · 2012年07月14日 · 最后由 zhangyuan 回复于 2012年07月16日 · 2499 次阅读

现在的需求是,我给用 devise+mongodb 的登陆验证加一个手机 auth 认证的功能。 请求地址:http://localhost:3000/api/v1/[email protected]&password=123456

Rails 后台获取到 email 和 pw 两个参数,现在我用 email 去数据库里面找一下看看是否存在该用户。

@user=User.find_by_email(email.downcase) 却提示说在 User 类中找不到 find_by_email 这个方法

这个方法在使用 mongodb 的时候不能用,为何?我该如何实现上述功能?

谢谢~~

mongoid 没有实现 find_by_xxx 动态方法

User.where(:email => email.downcase).first

你可以用 mongo mapper

题外话:请求地址里包含用户名和密码不安全,因为在访问日志里,会记录 GET 请求的地址。这样和明文保存用户名密码没什么区别了。

自己 def 个 find_by_email 呗

@zhangyuan 请教一下,你说的这个不安全的问题,如何解决好呢?我现在的办法是把 name 和 pw 放在 http 的 body 中了?不再放在 get 的参数里面了。

#5 楼 @mobiwolf 放在 body 应该没问题了,就是改成 POST 请求。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号