Ric*_*d G 0 ruby coding-style ruby-on-rails
有没有更好的方法来编写这段代码?对我来说似乎有点冗长.
我正在使用太阳黑子SOLR,该stored()方法返回一个nil或一个值数组,我总是想要第一个值,如果它存在,或只是打印一个空字符串是好的.
<td><%= search_result.stored(:seo_title).first() if search_result.stored(:seo_title).present? %></td>
<td><%= search_result.stored(:title).first() if search_result.stored(:title).present? %></td>
<td><%= search_result.stored(:publish_at).first() if search.result.stored(:publish_at).present? %></td>
Run Code Online (Sandbox Code Playgroud)
<%- [:seo_title, :title, :publish_at].each do |key| %>
<td><%= search_result.stored(key).try(:first) %></td>
<% end %>
Run Code Online (Sandbox Code Playgroud)
无论如何,如果只有3个键,我宁愿继续显式渲染所有3个表格单元格,这里的循环具有相同的行数并且看起来不太好.所以另一种选择是:
<td><%= search_result.stored(:seo_title).try(:first) %></td>
<td><%= search_result.stored(:title).try(:first) %></td>
<td><%= search_result.stored(:publish_at).try(:first) %></td>
Run Code Online (Sandbox Code Playgroud)