【问题标题】:Querying a Devise users table in Rails在 Rails 中查询设计用户表
【发布时间】:2011-05-23 19:32:21
【问题描述】:

我刚刚设置了 Devise 身份验证库,我对它的查询方式感到困惑。

比如之前我自己做users表的时候,我做了这个user.rb文件

class User < ActiveRecord::Base
  set_primary_key:uid
end

我可以像这样通过 uid 进行查询:

@User = User.find(1)
print @User   

现在 Devise 添加了许多列,users.rb 文件如下所示:

class Users < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable, 
         :first_name, :last_name, :organization_name

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me
end

上面查询这个表的代码不起作用,我不确定它是如何被查询的。

另外,我不确定我是否应该做这样的事情

rails generate devise User

我哪里错了?

【问题讨论】:

  • 我看到你的班级现在被命名为“用户”,它应该像你以前的 sn-p 一样被命名为“用户”。你确定你还有一个 UID 为 1 的用户吗?您可以尝试执行 User.first.uid 并查看返回的内容。

标签: ruby-on-rails ruby-on-rails-3 migration devise


【解决方案1】:

我认为覆盖 Rails 默认主键不是一个好习惯,也许您可​​以尝试通过以下方式找到您的用户:

@User = User.find_by_uid(1)

【讨论】:

  • 我不知道我正在覆盖 Rails 默认主键。我想我不想那样做。我试着用你的想法,我得到了这个错误:undefined method `find_by_uid' for #<0x9716778>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多