时间created_at + 1周

时间:2015-05-04 20:13:41

标签: ruby-on-rails ruby

我有一个用户可以办理入住/退房手册的系统,我想这样做,这样用户可以保留一周的书。

如何为我的图书借阅项目'created_at + 1周'?

目前我有一个这样的表格,显示一些信息: - 在“登记入住时间”栏中,我想添加退房时间+ 7天

<table>
  <tr>
    <th>Author</th>
    <th>Title</th>
    <th>User Name</th>
    <th>User Email</th>
    <th>Check-Out time</th>
    <th>Check-In time</th>
  </tr>

<% for item in @books_loaned %>
  <tr>
    <td><%= item.book.author %></td>
    <td><%= item.book.title %></td>
    <td><%= item.user.name %></td>
    <td><%= item.user.email %></td> 
    <td><%= item.created_at %></td>
    <td><%= button_to "Check-In", {:controller => :librarian, :action =>                                                                          
    :check_in}, {:method => :post} %></td>    
  </tr>
<% end %>
</table>

2 个答案:

答案 0 :(得分:2)

有很多可行的方法可以做到这一点:

如果您只想显示Date时间,那么:

<%= item.created_at.to_date.next_week %> 
#this will add 6 days and output will be seventh day

或者如果您想手动添加天数

<%= item.created_at.to_date+7.days %>

<%= item.created_at.to_date+1.week %>

如果您还想显示时间,请从上面的代码中删除.to_date

答案 1 :(得分:1)

简单添加7.days

在你的例子中:

<table>
  <tr>
    <th>Author</th>
    <th>Title</th>
    <th>User Name</th>
    <th>User Email</th>
    <th>Check-Out time</th>
    <th>Check-In time</th>
  </tr>

<% for item in @books_loaned %>
  <tr>
    <td><%= item.book.author %></td>
    <td><%= item.book.title %></td>
    <td><%= item.user.name %></td>
    <td><%= item.user.email %></td> 
    <td><%= item.created_at + 7.days %></td>
    <td><%= button_to "Check-In", {:controller => :librarian, :action =>                                                                          
    :check_in}, {:method => :post} %></td>    
  </tr>
<% end %>
</table>

显然也可能1.week。通过ActiveSupport在Rails中提供所有内容:http://edgeguides.rubyonrails.org/active_support_core_extensions.html

相关问题:How to add 10 days to current time in Rails