我在Rails应用程序中使用RABL通过REST访问数据。它的工作除了if语句。
我收到此错误:
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
我也试过
if @expense.matitem_id != nil
答案 0 :(得分:9)
如果matitem_id
是@expense
对象的属性,则应通过root_object
帮助器以条件形式引用它:
if root_object.matitem_id
child :matitem do |matitem|
attributes :id, :itemnum
end
end
此外,!= nil
可能是多余的。
答案 1 :(得分:1)
这一行:
if :matitem_id != nil
字面上将符号:matitem_id
与nil
进行比较。这绝不是真的。您需要做的是比较子对象的ID。您可以将对象传递到块中:
child :matitem do |matitem|
if matitem.id != nil
...
end