Я устанавливаю очень простое приложение rails 3 для просмотра данных в устаревшей базе данных MySQL.Устаревшая база данных в основном совместима с рельсами ORM, за исключением того, что поля внешнего ключа являются множественными.Например, в моей таблице «заказы» есть поле внешнего ключа к таблице «компании» под названием «companies_id» (а не «company_id»).Поэтому, естественно, мне приходится использовать атрибут «: foreign_key» для «assign_to», чтобы установить имя поля вручную.
Я не использовал рельсы в течение нескольких лет, но я уверен, что 'Я все делаю правильно, но я получаю следующую ошибку при попытке доступа к «order.currency.code»:
undefined method `code' for nil:NilClass
Это пока очень простое приложение.Единственное, что я сделал, - это сгенерировал приложение и связку для каждой из устаревших таблиц базы данных.Затем я углубился в некоторые из моделей, чтобы внести коррективы, чтобы учесть вышеупомянутое различие в соглашениях об именах баз данных, и добавил некоторые поля к представлениям.Вот и все.Нет ничего смешного.
Так что мои таблицы базы данных выглядят так (только соответствующие поля):
orders
------
id
description
invoice_number
currencies_id
currencies
----------
id
code
description
Модель моего заказа выглядит следующим образом:
class Order < ActiveRecord::Base
belongs_to :currency, :foreign_key=>'currencies_id'
end
Моя валютаМодель выглядит следующим образом:
class Currency < ActiveRecord::Base
has_many :orders
end
Соответствующий фрагмент представления выглядит следующим образом:
<% @orders.each do |order| %>
<tr>
<td><%= order.description %></td>
<td><%= order.invoice_number %></td>
<td><%= order.currency.code %></td>
</tr>
<% end %>
У меня совершенно нет идей.Есть предложения?