Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails-RABL-if-else语句_Ruby On Rails_Rabl - Fatal编程技术网

Ruby on rails Rails-RABL-if-else语句

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

我在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
更新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