Почему я получаю ноль для принадлежащего отношения в рельсах?
-
24-09-2019 - |
Вопрос
У меня проблема в моем приложении Ruby on Rails с моделью, где принадлежит отношение_то, продолжается заканчиваться быть ноль.
Учитывая следующие модели:
class Chassis < ActiveRecord::Base
belongs_to :model
belongs_to :chassis_size
end
class Model < ActiveRecord::Base
has_many :chassis
end
class ChassisSize < ActiveRecord::Base
has_many :chassis
end
Теперь я ожидал, что в моем индексе шасси, я бы увидел как модель, так и данные CHASSIS_SIZE:
<% @chassis.each do |chassis| %>
<%= chassis.id %><br />
<%= chassis.model.name %><br />
<%= chassis.chassis_size.size %><br />
<% end %>
Но я получаю ошибку, что chassis_size.size - это nil:
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.size
Глядя на данные в базе данных, все, кажется, правильно.
Я не уверен, почему модель работает, но Chassis_size нет. Что мне не хватает? Почему данные Chassis_size не загружаются?
Решение
Размер колонна в вашем столе Chassis_sizes?
Если это так, это зарезервированное слово в Ruby, так как это метод возврата длины массива.
Есть ли у каждого шасси Chassis_size? Попробуй это:
<% @chassis.each do |chassis| %>
<%= chassis.id %><br />
<%= chassis.model.name %><br />
<% if chassis.chassis_size %>
<%= chassis.chassis_size.description %>
<% else %>
No chassis_size exists for this chassis
<% end %><br />
<% end %>
Не связан с StackOverflow