Ruby on rails 在Rails中查询设计用户表

Ruby on rails 在Rails中查询设计用户表,ruby-on-rails,ruby-on-rails-3,migration,devise,Ruby On Rails,Ruby On Rails 3,Migration,Devise,我刚刚建立了designeauth库,我对如何查询它感到困惑 例如,在创建自己的users表之前,我创建了这个user.rb文件 class User < ActiveRecord::Base set_primary_key:uid end 现在,Desive添加了许多列,users.rb文件如下所示: @User = User.find(1) print @User class Users < ActiveRecord::Base # Include defaul

我刚刚建立了designeauth库,我对如何查询它感到困惑

例如,在创建自己的users表之前,我创建了这个user.rb文件

class User < ActiveRecord::Base
  set_primary_key:uid
end
现在,Desive添加了许多列,users.rb文件如下所示:

@User = User.find(1)
print @User   
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默认主键不是一个好的做法,也许您可以尝试用以下方式找到您的用户:

@User = User.find_by_uid(1)

我看到您的类现在被命名为“Users”,它应该被命名为“User”,就像您之前的代码片段一样。您确定还有一个UID为1的用户吗?您可以尝试执行User.first.uid并查看返回的内容。我不知道我正在覆盖Rails默认主键。我想我不想那样做。我尝试使用您的想法,但我遇到了一个错误:未定义的方法“find_by_uid”for#Rails默认为所有模型提供自己的主键。也许这就是安装Desive后用户模型无法正常工作的原因。我想我误解你了,你真的有一个叫做uid的属性吗?如果您试图使用实际记录id,则应使用User.find by_id(1)方法。这里有更多关于动态att查找器的信息
@User = User.find_by_uid(1)