2013-04-12 48 views
5

我在Rails應用程序中使用RABL來通過REST訪問數據。除了if語句之外,它正在工作。Rails RABL if else語句

我得到這個錯誤:

undefined local variable or method `matitem_id' 

這是我的show.json.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

我也試過

​​
+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

這條線:

if :matitem_id != nil

是符號:matitem_id字面上比較nil。這永遠不會是真的。你需要做的是比較子對象的ID。您可以傳遞對象成塊:

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

我的問題是錯的 - 我已經更新 – Reddirt

+0

你的費用模型有'belongs_to:matitem'嗎? –