ruby-on-rails – Ruby:如何存储和显示星期几?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Ruby:如何存储和显示星期几?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我比较新的 Ruby.我需要跟踪我的活动模式的一周中的某一天.我迄今为止的代码似乎不是最优雅的解决方案.我想知道是否有更好的方法.

到目前为止,这是我的形式:

<%= form_for(@activity) do |f| %>
  <div class="field">
    <%= f.label :day %><br />
    <%= f.select :day,[['Sunday',0],['Monday',1],['Tuesday',2],['Wednesday',3],['Thursday',4],['Friday',5],['Saturday',6]] %>
  </div>
<% end %>

当我需要显示星期几:

<% days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'] %>
<% @activities.each do |activity| %>
  <%= days[activity.day.to_i] %>
<% end %>

我该怎么做得更好?随意提到我可能不知道的任何图书馆/宝石.

解:

Ruby提供了Date::DAYNAMES常数,这是一周中的几天.我们可以在我们的代码中重用它:

<%= form_for(@activity) do |f| %>
  <div class="field">
    <%= f.label :day %><br />
    <%= f.select :day,Date::DAYNAMES.zip((0..6).to_a) %>
  </div>
<% end %>

<% @activities.each do |activity| %>
  <%= Date::DAYNAMES[activity.day.to_i] %>
<% end %>

解决方法

Ruby的 Date类已经有一个常量定义,它保存数组中的日期名称:Date :: DAYNAMES.

例如,您可以执行以下操作:

days = []
Date::DAYNAMES.each_with_index { |x,i| days << [x,i] }

我不知道我是否会说这更好,但你可以肯定地利用你已经可以使用的东西.

猜你在找的Ruby相关文章