уважаемые разработчики У меня есть некоторые проблемы с моделями Rails
Вот мои sql таблицы
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
В производственном режиме не работает, booking.area ноль объекта. что это может быть?
Площадь стала нулевой, если config.cache_classes = true
, поэтому booking.area генерирует такие запросы
if cashe_classes = true
ВЫБЕРИТЕ areas
. * ОТ areas
ГДЕ (areas
.ndc = NULL) ПРЕДЕЛ 1
но без обналичивания классов
ВЫБЕРИТЕ areas
. * ОТ areas
ГДЕ (areas
.ndc = 30) ПРЕДЕЛ 1
ИСПРАВЛЕНО путем удаления принадлежащего_Книга: book,: foreign_key => 'ndc' из класса области.