Rails RABL if else语句

Red*_*irt 5 ruby-on-rails rabl

我在Rails应用程序中使用RABL通过REST访问数据.它的工作除了if语句.

我收到此错误:

undefined local variable or method `matitem_id'
Run Code Online (Sandbox Code Playgroud)

这是我的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
Run Code Online (Sandbox Code Playgroud)

UPDATE1

我也试过了

if @expense.matitem_id != nil
Run Code Online (Sandbox Code Playgroud)

And*_*bbs 9

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

if root_object.matitem_id
  child :matitem do |matitem|
    attributes :id, :itemnum
  end
end
Run Code Online (Sandbox Code Playgroud)

而且,这!= nil可能是多余的.