Почему я получаю ноль для принадлежащего отношения в рельсах?

StackOverflow https://stackoverflow.com/questions/2374945

Вопрос

У меня проблема в моем приложении 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 %>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top