2013-04-12 7 views
5

मैं आरईएसटी के माध्यम से डेटा तक पहुंचने के लिए रेल ऐप में आरएबीएल का उपयोग कर रहा हूं। यह अगर कथन के अलावा काम कर रहा है।रेल RABL यदि अन्यथा विवरण

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

मैं भी कोशिश की

if @expense.matitem_id != nil 
+0

आपका क्या मतलब है कि यह काम नहीं कर रहा है? –

+0

क्षमा करें - मैंने प्रश्नों को बदल दिया है और त्रुटि को जोड़ा है – Reddirt

उत्तर

9

तो matitem_id@expense वस्तु की एक विशेषता है आप इस तरह root_object सहायक के माध्यम से एक सशर्त में यह उल्लेख होना चाहिए:

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

इसके अलावा, != nil आप ब्लॉक में वस्तु पारित कर सकते हैं शायद अनावश्यक है।

+0

उत्तर के लिए धन्यवाद! – Reddirt

1

यह पंक्ति:

undefined local variable or method `matitem_id' 

यह मेरा show.json.rabl कोड है:

मैं इस त्रुटि मिलती है :

if :matitem_id != nil

सचमुच nil के प्रतीक :matitem_id तुलना कर रहा है। यह कभी भी सच नहीं होगा। आपको क्या करने की ज़रूरत है बच्चे की वस्तु की आईडी की तुलना करें।

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

मेरा प्रश्न गलत था - मैंने इसे अपडेट किया है – Reddirt

+0

क्या आपके व्यय मॉडल में 'belong_to: matitem' है? –

संबंधित मुद्दे