ruby-on-rails - Rails - 如何对嵌套记录使用 TRY

标签 ruby-on-rails ruby ruby-on-rails-3

我有以下内容:

:caption => thread.thread_widgets.first.widgetable.title

如果线程有一个可选的 thread_widget,那工作正常。鉴于它是可选的,如果线程没有 thread_widgets,则此错误为

undefined method `widgetable' for nil:NilClass

有没有一种方法可以使用 try(),这样错误就不会终止页面?

谢谢

最佳答案

:caption => (o = thread.thread_widgets.first) && o.widgetable.title

但是你要求 Object#try, 所以:

:caption => thread.thread_widgets.first.try(:widgetable).try(:title)

关于ruby-on-rails - Rails - 如何对嵌套记录使用 TRY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6600598/

相关文章:

ruby-on-rails - 如何卸载/删除旧的 ruby​​ 版本并保持更新。我安装了两个版本的 ruby

javascript - 谷歌图表在第一次请求时不显示,但仅在第二次请求时显示

ruby-on-rails - Redmine 慢速 View 渲染

ruby-on-rails - 部分表单渲染但不显示

ruby-on-rails-3 - Rails 内容类型验证不适用于 Paperclip

ruby-on-rails - 如何提前退出 Ruby Cucumber Step 定义?

ruby-on-rails - has_many :through with counter_cache

ruby - 使用 ruby​​ gem 解析 excel "creek"

ruby - 在 Ruby 中比较序列

ruby-on-rails - 使用 ruby​​ on rails 在 json 中发送错误消息