2016-03-20 21 views
1

aittir: Bu benim prop modeliraylar nil için tanımsız yöntem `kimliği': NilClass ile Bu benim kalem modelidir ilişki

class Item < ActiveRecord::Base 
    has_many :props 
end 

olduğunu

class Prop < ActiveRecord::Base 
    belongs_to :item 
end 

I (PORP özelliğinden kısadır) bu problemi yaşa. Pervane oluşturduğumda item_id gerektirir. Ama bu id ile hiçbir öğe varsa burada bir hata alırsınız:

<%= @prop.item.id %> 

    <%= @prop.item.name %> 

ne yapmalıyım?

YUKARI: Varlığını kontrol edebilirim <%= @prop.item.try(:name) %> Diğer seçeneklerim nelerdir?

+0

Sizin Ürün model has' has_many:

class Item def self.null Item.new(name: 'null') end end @item = @prop.item || Item.null 

O zaman bu kod hata yükseltmez öğeler 'o bir yazım hatası mı? – Pavan

+0

Oh, el yazımı yazdığım bir yazım hatası gibi görünüyor. Bu bir hata! – user2950593

+0

Has_many olarak değiştirdim: sorunu hala devam ettiriyor – user2950593

cevap

-1

böylece sevdiği modellerin oluşturulması:

class Item < ActiveRecord::Base belongs_to :prop end

class Prop < ActiveRecord::Base has_one :item end

Eğer @prop.item.id

Bildirim modeli tanımında tekil has_one çağrısında bulunma izni verecek. has_many ilişkisini kullanmak istiyorsanız @prop.items.id numaralı telefonu arayın.

+0

Anlamıyorum. Ürün prop'a ait değildir. Mülkiyet eşyaya aittir. – user2950593

+0

Soruyu tamamen yanlış anladınız. – Pavan

+0

Ama siz @ prop.item '' item.prop' değil mi? – meshpi

0

NullObject kullanmayı öneririm.

<%= @item.id %> 

<%= @item.name %> 
İlgili konular