2011-04-27 16 views
0

我生成了一個支架,該傳統SQL Server數據庫視圖具有不帶id列的文本主鍵。我在模型中有set_primary_key「Gift_ID」,但是我在show方法中得到一個錯誤。傳統表存在set_primary_key問題

我可以列出記錄沒關係,但當我點擊顯示鏈接時,它出錯了。即使我在模型中有set_primary_key,它似乎也使用id來查找記錄。以下是顯示的錯誤的完整文本;

NoMethodError in PledgesController#show 

undefined method `eq' for nil:NilClass 
Rails.root: /home/steve/RubymineProjects/otatest 

Application Trace | Framework Trace | Full Trace 
app/controllers/pledges_controller.rb:16:in `show' 
Request 

Parameters: 

{"id"=>"PL-24681"} 
Show session dump 

Show env dump 

Response 

Headers: 

None 

任何人都瞭解爲什麼它仍然試圖用「ID」爲重點,一些輕? 感謝您的幫助!

+0

想要發佈包含「show」鏈接以及控制器的顯示方法的視圖代碼嗎? – mharper 2011-04-28 00:46:50

回答

1

我解決了我的問題,所以我想我會回答我自己的問題以防別人幫助別人; 我放棄了在模型中使用set_primary_key選項,並使用數據中的關鍵字段將「id」字段添加到遺留系統(SQL Server)中的視圖中。這解決了id問題。
我還發現生成的腳手架字段名稱區分大小寫。所以我使用視圖將所有字段名稱設置爲小寫。您可以確保您的腳手架案例與傳統字段名稱匹配,但我發現將它們全部設置爲小寫更容易。
還有一件事;我有一些遺留的布爾字段有一個「?」在字段名稱末尾,腳手架也不喜歡這樣,所以我刪除了「?」在視圖中。

在傳統系統之上構建Rails應用程序的底線是挑戰。通過將表遷移到舊數據庫並檢查它創建字段的方式,然後修改我的視圖以匹配,我發現了我的大部分問題。