2013-04-12 22 views
5

REST üzerinden RET uygulamasına erişmek için RABL uygulamasında RABL kullanıyorum. If ifadesi dışında çalışıyor.Rails RABL eğer else

object @expense 
attributes :id, :unitcost, :quantity, :markup, :exp_date, :created_at, :description, :pcard, :invoice 

child :employee do 
    attributes :id, :maxname 
end 

child :vendor do 
    attributes :id, :vendor_name 
end 

if matitem_id != nil 
    child :matitem do |matitem| 
    attributes :id, :itemnum 
    end 
end 

UPDATE1 Ben de

if @expense.matitem_id != nil 
+0

Ne demek, çalışmıyor? –

+0

Üzgünüm - sorularım değiştirdim ve hata ekledim – Reddirt

cevap

9

matitem_id Eğer böyle root_object yardımcı yoluyla koşullu bunu başvuruda bulunmalıdır: Ayrıca

if root_object.matitem_id 
    child :matitem do |matitem| 
    attributes :id, :itemnum 
    end 
end 

, != nil Sen bloğun içine nesneyi geçirebilir Muhtemelen gereksizdir.

+0

Cevabınız için teşekkürler! – Reddirt

1

Bu hat çalıştı

: Bu benim show.json.rabl kodu

undefined local variable or method `matitem_id' 

geçerli:

bu hatayı alıyorum :

if :matitem_id != nil

anlamıyla nil simgeyi :matitem_id karşılaştırarak mı. Bu asla doğru olmaz. Yapmanız gereken şey, çocuk nesnesinin kimliğini karşılaştırmaktır. @expense nesnenin bir özelliğidir

child :matitem do |matitem| 
    if matitem.id != nil 
    ... 
end 
+0

Sorum oldum - Bu hatayı düzeltdim – Reddirt

+0

Gider modeliniz 'belongs_to: matitem' var mı? –