5

我在 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
4

2 回答 2

9

如果matitem_id@expense对象的一个​​属性,您应该通过帮助器在条件中引用它,root_object如下所示:

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

此外,这!= nil可能是多余的。

于 2013-04-12T22:56:32.087 回答
1

这一行:

if :matitem_id != nil

从字面上将符号:matitem_idnil. 这永远不会是真的。您需要做的是比较子对象的 ID。您可以将对象传递到块中:

child :matitem do |matitem|
  if matitem.id != nil
    ...
end
于 2013-04-12T22:04:53.273 回答