我挂钩到一个现有的数据库,以便为管理创建一些简单的脚手架。他们使用的命名约定是table_id。因此,我需要将缺省主键从“id”修改为“customer_id”,例如。我也希望能够使用这种改变的铁轨脚手架,而不必重新布线。Rails 4 - 重命名主键
0
A
回答
0
我遵循这个指南:http://ruby-journal.com/how-to-override-default-primary-key-id-in-rails/
它似乎很好地工作。
0
其实你不想这样做。
ID是数据库只,Rails中你可以使用外键,和这样说
负荷消费的has_many:XXX 和 XXX belongs_to的:负荷消费
,你给你1 n关系数据库的含义XXX需要消费者存在。
回答你为什么不想改变这种情况,是因为你的数据库在改变之后不知道如何行动(如果可能的话),以及如何在没有ID的情况下搜索新脚手架上的物品?由于ID是负荷消费ID
如果你不知道如何给外键相关问题
- 1. 重命名Rails 4应用程序
- 2. 在sqlite中重命名主键
- 3. 在MySQL上重命名主键约束
- 4. Rails 4中的命名路线4
- 5. 重命名Rails中
- 6. 重命名键PHP
- 7. Rails 4与MySQL的备用主键
- 8. PHP数组重命名键
- 9. Rails 3.2.1 - 重命名路由
- 10. rails重命名关联
- 11. Rails重命名路由
- 12. 重命名Rails数据库
- 13. Rails循环重命名
- 14. 如何重命名外键?
- 15. 重命名SimpleXMLElement键/属性
- 16. 重命名'this'关键字
- 17. 重命名数组键
- 18. 重命名JavaScript对象键
- 19. Rails 4,回形针,FTP上传。如何重命名?
- 20. Rails 4,sqlserver-adapter:使用alias_attribute重命名传统属性
- 21. 使用appcfg.py更新数据存储实体重命名主键
- 22. 在Rails中重新创建主键
- 23. 我如何给主键约束命名?
- 24. 如何重命名JSON关键
- 25. 重命名软键盘上的按键
- 26. 将主机名重命名影响git
- 27. 重命名TeamCity服务器主机名
- 28. 重命名-SPServer和主机名
- 29. MVC 4 EF5主键
- 30. 被重命名为主目录 - Rails将无法启动
记录的更新将失败,如果没有列“id”引用,但是,对吧?我连接的数据库的customer_id是主键。如果我运行rails更新或销毁,对于id = 45,它不会找到记录。 – Atari2600
您可以将collum添加到数据库中作为解决方案[请在此处查看](http://guides.rubyonrails.org/active_record_migrations.html#highlighter_783751)。为了回答你,我完全不知道轨道数据库是如何工作的,但是我猜想不会,我不会建议你弄乱它。 那么你会有一个问题发现ID,它会太麻烦(如果可能的话)。你能想象吗? *东西* find_by(id = costumer_id)如果你搜索别的东西而不是你的客户?使用相同的ID为2表代表不同的东西..嗯..有点凌乱 –
示例..可以说,对于每一个客户,你有产品..你将如何访问产品编号? products.costumer_id?为什么不使用这个costumer_id作为关键?你会如何储存这些产品?并订购?或搜索具体信息? costumer_id在您的产品表上不会是完美的顺序..也就是说,在您的产品上,它会是(例如)costumer_id 3,然后在第二个产品上它会是costumer_id 1 ..所以您的表不会在为了找到它需要为了找到ID 你能想象如果你有1000个产品?并且ID不是1-1000? –