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] }

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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...