2011-06-07 55 views
1

我在谷歌和stackoverflow很長一段時間搜索,但我找不到我的問題的解決方案。Rails 3 - 使用set_primary_key導致路由錯誤

最近,我使用set_primary_key來創建一個名爲「employee」的表,因爲我需要使用它的人員編號作爲我的主鍵。如果我設置的代碼

`set_primary_key :personel_number` 

(Personel_number已經是我想使用作爲主鍵collumn)到我的模型我耙分貝之前:遷移,並做最後遷移,我接觸到的麻煩時,我嘗試通過瀏覽器來填補我的數據庫:

`Couldn't find employee with ID=1` 

`app/controllers/mitarbeiters_controller.rb:16:in `show'` 

Rails的搜索與ID = 1的員工,但它無法找到,因爲我從601(例如)personel_number設置主鍵。

我可以對它做些什麼嗎?或者我應該讓Rails創建它自己的ID:第一個?

+0

請張貼路線,以幫助您 – radha 2011-06-07 19:32:58

+0

是的,軌道真的不希望你使用自動遞增整數爲你的id以外的任何東西。您應該在模型中爲人員編號創建另一個字段,並通過該搜索找到/搜索 – 2011-06-07 19:33:05

+0

好的,我嘗試更精確: - >在模型中設置pk - > rake db:migrate - > rails s and viewing本地主機:3000 /員工 - >現在我輸入一個新的僱員與個人號碼(這將是我的PK,例如601)和名稱 - >瀏覽器想要路由到員工/ 1(http://img7.imagebanana.com /img/z5issu4s/1.PNG),但Rails沒有在SQLite數據庫瀏覽器上設置id = 1 - >的任何員工,我可以看到一些奇怪的東西:http://img7.imagebanana.com/img/ga0pnpbn/ 2.png 它似乎試圖設置自己的主鍵和eleminating導軌設置ID導致很多問題...... – Kirinriki 2011-06-08 06:49:56

回答

0

這聽起來像是當頁面轉到控制器創建員工,你有一個重定向來顯示新員工,它使用默認ID。

+0

@ Craig:是的,我認爲這就是發生了什麼事情,但實際上,我是一名初學者,我不知道如何解決這個問題。 爲 '新' 頁面視圖: '

新mitarbeiter

<%=渲染 '形式' %> <%=的link_to '後退',mitarbeiters_path%>' – Kirinriki 2011-06-16 13:56:40

+0

我認爲這是最好的觀看textfile: >>>>>我對'new'的看法:http://dl.dropbox.com/u/6663083/new.html.erb.txt >>>>>我對_form.html.erb的看法:http://dl.dropbox.com/u/6663083/_form.html.erb.txt >>>>我的控制器:http://dl.dropbox.com/u/6663083/mitarbeiters_controller.txt note :因爲我不是英語母語的人,所以這些表格不是英文的。 「mitarbeiter」=「員工」; 「personalnr」=「personel_number」 提前致謝! :) – Kirinriki 2011-06-16 14:04:15