Ruby on rails Rails-RABL-if-else语句
我在Rails应用程序中使用RABL通过REST访问数据。除了if语句外,它还在工作 我得到这个错误:Ruby on rails Rails-RABL-if-else语句,ruby-on-rails,rabl,Ruby On Rails,Rabl,我在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 :e
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
更新1
我也试过了
if @expense.matitem_id != nil
这一行:
if:matitem\u id!=无
将符号:matitem_id
与nil
进行字面上的比较。这永远不会是真的。您需要做的是比较子对象的ID。可以将对象传递到块中:
child :matitem do |matitem|
if matitem.id != nil
...
end
如果
matitem\u id
是@expense
对象的属性,则应通过root\u对象在条件中引用它,如下所示:
if root_object.matitem_id
child :matitem do |matitem|
attributes :id, :itemnum
end
end
还有,!=nil
可能是多余的。你说它不工作是什么意思?抱歉-我更改了问题并添加了错误您的费用模型是否属于:matitem
?