4

是否可以将对象以外的选项传递给 rabl 部分?

例如,父模板将一个名为“show_field1”的选项传递给基本模板:

extends "base", :show_field1 => true

然后在 base.rabl 中,可以像这样使用该选项:

attribute :field1 if @show_field1

我能够选择的唯一方法是通过这种可怕的方法来查看幕后:

attribute :field1 if @_options[:show_field1]
4

2 回答 2

1

RABL 通过使用特殊的locals哈希来支持这一点:

# some_view.rabl
extends "base", locals: { show_field1: true }

# base.rabl
attribute :field1 if locals[:show_field1]

关于该主题的 RABL 文档

于 2014-01-21T18:23:05.880 回答
0

另一种方法是将这些值存储在顶级对象上,并让扩展在模板中提取它。

感谢@achiu的recco

于 2013-03-05T15:55:32.957 回答