ruby - 如果在 ruby​​/erb 中定义了变量,则回显

标签 ruby erb

<分区>

Possible Duplicate:
Checking if a variable is defined in Ruby

使用 Tilt 的模板 render方法,我传入

#... t setup ...
t.render(self, { :a => 'test', :b => 'again' })

在我的 template.erb

<%= a %>
<%= b %>

假设我删除了 :b从我传递给模板的散列。渲染将失败,因为 :b未定义。

在 PHP 中,我可以:

<?= isset($foo) ? $foo : '' ?>

是否有任何干净的方法(在 ruby​​/erb 中)来“回显 if”?

我试过了 <%= b.nil? ? b : '' %>但这显然是错误的.. 任何帮助将不胜感激

最佳答案

defined? 是等同于 isset() 的 ruby​​。

<%= defined?(a) ? a : 'some default' %>

关于ruby - 如果在 ruby​​/erb 中定义了变量,则回显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12905459/

相关文章:

ruby-on-rails - 如何在 ERB 中转义 ERB 标签

erb - 模板内的算术运算

ruby 字符串到八进制?

ruby-on-rails - Rails 3. 使用 Formtastic 有条件地显示字段

ruby 和引用资料。使用 fixnums

html - 为什么 Rails 给我 "Can' t verify CSRF token authenticity”错误?

Erb 标签内的 Javascript 变量

ruby - 使用 Raise 尝试在 Ruby 中回答 Rspec 到 raise_error 时不断出现错误?

ruby - 使用 Ruby 访问哈希中哈希中的键值对

ruby - Puppet:迭代模板中的 hiera_hash