Ruby on Rails модельные ассоциации нубие вопрос - PullRequest
0 голосов
/ 19 января 2011

уважаемые разработчики У меня есть некоторые проблемы с моделями 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' из класса области.

1 Ответ

2 голосов
/ 19 января 2011

Ваша таблица areas нуждается в целочисленном поле book_id, чтобы соответствовать первичному ключу таблицы книг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...