Ruby on rails Rails 3-使用set_primary_键会导致路由错误

Ruby on rails Rails 3-使用set_primary_键会导致路由错误,ruby-on-rails,Ruby On Rails,我在google和stackoverflow上搜索了很长时间,但我找不到解决问题的方法 最近,我对一个名为“employee”的表使用set_primary_key,因为我需要使用其他人员编号作为主键。如果我设置代码 `set_primary_key :personel_number` (Personel_number已经是一个合谋,我想用它作为主键)在我做rake db:migrate和做migrating之前进入我的模型最后,当我试图通过浏览器填充数据库时遇到了麻烦: `Couldn't

我在google和stackoverflow上搜索了很长时间,但我找不到解决问题的方法

最近,我对一个名为“employee”的表使用set_primary_key,因为我需要使用其他人员编号作为主键。如果我设置代码

`set_primary_key :personel_number`
(Personel_number已经是一个合谋,我想用它作为主键)在我做rake db:migrate和做migrating之前进入我的模型最后,当我试图通过浏览器填充数据库时遇到了麻烦:

`Couldn't find employee with ID=1`

`app/controllers/mitarbeiters_controller.rb:16:in `show'`
Rails搜索ID=1的员工,但找不到,因为我将personel_number中的主键设置为601(例如)


我可以做点什么来反对它,还是让Rails自己创建:id优先

听起来,当页面转到控制器以创建员工时,您有一个重定向以显示新员工,并且它使用的是默认id。

请发布路由以帮助您。耶,rails真的不希望您对id使用除自动递增INT之外的任何内容。您应该在模型中为您的id创建另一个字段人员编号,并按该编号查找/搜索确定,我尝试更精确:->在model->rake db:migrate->rails s中设置pk并查看localhost:3000/employees->现在我键入一名新员工,其个人编号(将是我的pk,例如601)和姓名->浏览器希望路由到employees/1(),但是rails没有在SQLite数据库浏览器上设置id=1->的任何员工,我可以看到一些奇怪的事情:似乎试图设置自己的主键并删除rails集id会导致很多问题……发布“新建”页面的视图和控制器。@Craig:是的,我想这就是正在发生的事情,但实际上,我是一个rails初学者,不知道如何解决这个问题。“新建”页面的视图:
new mitarbeiter
我认为最好在文本文件中查看:>>>>>我的“新建”视图:>>>>>我的_form.html.erb视图:>>>>>我的控制器:注意:因为我不是英语母语,所以表不是英语的。“mitarbeiter”=“员工”;“personalnr”=“personel\u number”提前感谢!:)