0
親愛的開發者,我有一些問題Rails的模型 這裏是我的SQL表Ruby on Rails的模型關聯nubie問題
create_table "areas", :primary_key => "ndc", :force => true do |t|
t.string "townname", :limit => 256, :null => false
end
create_table "books", :primary_key => "ndc", :force => true do |t|
t.integer "booked", :null => false
t.integer "free", :null => false
end
class Book < ActiveRecord::Base
self.primary_key = "ndc"
has_one :area, :foreign_key => 'ndc'
end
class Area < ActiveRecord::Base
self.primary_key = "ndc"
belongs_to :book , :foreign_key => 'ndc'
end
在控制器我有這樣的代碼
@books = Book.paginate :page => params[:page] || 1, :per_page => 10
@books.each do |booking|
p booking.area
p booking
end
在生產模式沒有按」 t工作,booking.area是無對象。它可能是什麼?
區becames零如果config.cache_classes =真
所以booking.area產生這樣的查詢 如果cashe_classes =真
SELECT areas
。* FROM areas
WHERE(areas
.ndc = NULL)LIMIT 1 但沒有兌現類 SELECT areas
* FROM areas
WHERE(areas
.ndc = 30)LIMIT 1
通過去除belongs_to的修正:書,:foreign_key => 'NDC' F ROM區類。
我向book類添加了self.primary_key =「ndc」,並且協會似乎現在正在工作。謝謝 – Fivell 2011-01-19 15:52:54
是的,任何時候,如果您爲主鍵字段使用「id」以外的名稱,則必須在您的ActiveRecord類中插入一條指定該主鍵的語句。 – 2011-01-19 15:58:42