2011-03-11 53 views
2

我的問題似乎是在模型中使用外鍵引用時默認生成的腳手架形式的某處。導軌腳手架的生成和簡單的外鍵引用問題

我會詳細了代我跑之前,我有我的問題的順序:

軌產生支架課程名稱:文字說明:文字網址:字符串坡:整等級:浮

軌生成腳手架事件名稱:文字說明:文字EVENTDATE:日期課程:引用

耙分貝:遷移

..

此時我進入課程頁面並創建一個新課程並保存。這工作正常。

然後我去本地主機:3000 /事件/新的一頁,我嘗試使用默認的形式來創建一個新的事件: 的形式是這樣的: 名稱:文本框 說明:文本框 EVENTDATE:[填寫日期控件] COURSE_ID:文本

我填寫一些信息字段,然後「1」在COURSE_ID領域,並擊中一些錯誤再次保存的效果:

錯誤(# xxxxxxxx)Expected,Got String(#xxxxxxxx)...然後是堆棧跟蹤。

因此,從我可以看到我可以告訴我不認爲它喜歡被作爲字符串值傳遞的course_id,但我似乎無法找到框架中的位置,我需要檢索該值並將其轉換它爲一個整數。

奇怪的是,在其他表中的整數值條目沒有問題轉換,它似乎是foreign_key引用給它的問題。

在過去,我從來沒有使用「引用」類型,我通常通過在腳手架中手動創建foreign_key,就像我的這一代會有course_id:integer,而不是course:references。然後,我從這一點手動將belongs_to添加到模型中。

無論如何。我可以以舊的方式去做,但我想了解Rails 3.0在這種「引用」類型下正在做什麼。

回答

0

我在事件模型中引用了課程對象(課程模型)。當您嘗試創建新活動時,您必須爲特定課程完成此活動。你收到一個錯誤,因爲在窗體中沒有「路線」傳遞給rails。

你必須做的: 1 - >選擇課程(可以使用嵌入列表進入new_event視圖) 2 - >填寫表格並提交 3 - >它應該工作

如果它不適合你,我會建議你在course_show視圖中使用部分(new_event_view),並傳給它當然的ID,它會起作用。

PS:有很多方法可以做到這一點。