微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

原文地址:https://www.jb51.cc/ruby/273115.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐