新手问题 where 查询语句有问题

tank_lei · 2013年10月25日 · 最后由 liwei78 回复于 2013年10月28日 · 2638 次阅读

rails 4.0 有对象 User 在 controller 里做登录判断: def login @user = User.new(user_params) ##页面登录进来 user = User.where(["name=? and password = ?", user.name,user .password]) ##数据库根据用户名和密码查询 if !user.blank?
##查询有数据 puts user.id ##这里输出 id 报错:undefined method `id' for #<ActiveRecord::Relation::ActiveRecord_Relation_User else puts "************************" end end

private def user_params params.require(:user).permit(:id, :name, :password) end

这个错误该怎么解决?

puts user.first.id

犀利 明文密码

where 查出来是一个 array 类型的。

Uesr 只是 new 了,但是没有存起来。所以是没有 id 的。new 完要 save。

#3 楼 @jjzxcc 且查不到@user,它还未 save。。。

#2 楼 @zj0713001 哈哈,这个才测试阶段!用于学习的

#4 楼 @administrator 我这个是要从数据库查询啊!

#3 楼 @jjzxcc 恩,知道了!直接用的 user.first.id 就能获得了

#10 楼 @tank_lei session create 的时候,貌似不用再 User.new 一个吧。直接 find_by_name 把 password 取出来,做加密校验,再对比就完了呀。

#8 楼 @tank_lei 学习阶段我个人感觉哈 先看看脚手架应该帮助更大 哈哈~

#12 楼 @zj0713001 4.0 里 demo 都没有用脚手架了!

#6 楼 @liwei78 他是 login,不是 register,不用 save 了,new 根本就是多余的,

#15 楼 @jun1st 啊,原来如此。。。。

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