Pergunta

Estou tendo um problema no meu aplicativo Ruby on Rails com um modelo em que um relacionamento pertence_to continua acabando sendo nulo.

Dados os seguintes modelos:

 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

Agora, eu esperaria que, na minha visualização do índice do chassi, eu veria o modelo e os dados do Chassis_size:

 <% @chassis.each do |chassis| %>
    <%= chassis.id %><br />
    <%= chassis.model.name %><br />
    <%= chassis.chassis_size.size %><br />
 <% end %>

Mas recebo um erro de que o chassis_size.size é nulo:

 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    

Olhando para os dados no banco de dados, tudo parece estar correto.

Não sei por que o modelo funciona, mas o chassis_size não. o que estou perdendo? Por que os dados chassis_size parecem carregar?

Foi útil?

Solução

O tamanho é uma coluna em sua tabela chassis_sizes?

Nesse caso, esta é uma palavra reservada no rubi, pois é o método para retornar o comprimento de uma matriz.

Todo chassi tem um chassi_size? Experimente isso:

<% @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 %>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top