ruby-on-rails - rails View : Idiomatic way to show description for an association object that can be null?

标签 ruby-on-rails ruby idioms

Model Member belongs_to Discipline,即用户可以拥有一个纪律,但它是可选的。

我想知道当我显示用户详细信息时,Rails 惯用的方式是什么来显示成员的纪律。

我的第一个方法

<b>Discipline:</b>
<%=h @member.discipline.name %>

否则工作正常,但如果成员的纪律为 Nil,则失败并返回 NoMethodError。在那种情况下,我希望那里什么也没有。

我有几个选择

  • 定义方法 Member:discipline_name 如果成员没有学科则返回 ""
  • 用if限制输出;

“如果”的替代方案是这样的:

<b>Discipline:</b>
<% if @member.discipline %>
<%=h @member.discipline.name %>
<% end %>

这不是一个重大决定,但我想知道是否有一种“惯用方式”来做这件事或一些帮助/其他事情或其他需要考虑的事情。

br,桃子

最佳答案

在我看来,惯用的方式是:

<b>Discipline:</b>
<%=h @member.discipline.name if @member.displince.present? %>

关于ruby-on-rails - rails View : Idiomatic way to show description for an association object that can be null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5563399/

相关文章:

clojure - 惯用的 Clojure 中的上周编号和对应年份?

代码结构的 JavaScript 习惯用法

ruby-on-rails - rails 6 : Automatically reload local gem on change

Ruby - 从 csv 文件中删除列并转换为管道分隔的 txt 文件

ruby-on-rails - RoR - 模型与数据库

ruby - 使用 TK GUI 滚动滚动条

ruby - User#firstname委托(delegate)给person.firstname,但person为nil

python - 在 python 中检查值是否更大、更小或等于零的更好方法

ruby-on-rails - 我的 Rails 应用程序只给我一个空白屏幕,根本没有 HTML

ruby-on-rails - 扩展 Devise SessionsController 以使用 JSON 进行身份验证