Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用rails 4.0中sql模型预定义的和id_Ruby On Rails_Ruby_Validation_Devise_Postgresql 9.3 - Fatal编程技术网

Ruby on rails 使用rails 4.0中sql模型预定义的和id

Ruby on rails 使用rails 4.0中sql模型预定义的和id,ruby-on-rails,ruby,validation,devise,postgresql-9.3,Ruby On Rails,Ruby,Validation,Devise,Postgresql 9.3,我刚开始使用Rails,我一直在努力解决这个问题 问题是当我尝试登录时,出现了以下错误 问题是,当我在postgres中转到表usuario时,主键或ID被称为usuario\u ID,而不是ID 我不知道为什么rails只接受id 如果有人能帮我改变这一点,那将非常有帮助。您可以使用模型中的setter设置主键列名: # app/models/user.rb class User < ActiveRecord::Base self.primary_key = 'usuario_id'

我刚开始使用Rails,我一直在努力解决这个问题

问题是当我尝试登录时,出现了以下错误

问题是,当我在postgres中转到表
usuario
时,主键或ID被称为
usuario\u ID
,而不是
ID

我不知道为什么rails只接受
id


如果有人能帮我改变这一点,那将非常有帮助。

您可以使用模型中的setter设置主键列名:

# app/models/user.rb
class User < ActiveRecord::Base
  self.primary_key = 'usuario_id'
end
#app/models/user.rb
类用户
那个工人!,但是现在我得到了PG.PG::NotNullViolation:error的错误:«usuario_id»列的null值违反了notnull限制。我知道它违反了de限制,如何在不通过注册表单输入ID的情况下自动增加ID?此外,当我在Postgres中转到\d usuario时,我会在表usuario中获得此信息。列类型修饰符usuario|u id | integer |不为null
# app/models/user.rb
class User < ActiveRecord::Base
  self.primary_key = 'usuario_id'
end