日期 、路由辅助方法

[color=blue]#31 Formatting Time[/color]

方法一:
Task.first.due_at.to_s =>2009-02-19 00:00:00 UTC
Task.first.due_at.to_s =>(:long) February 19, 2009 00:00
Task.first.due_at.to_s(:short) =>19 Feb 00:00
Task.first.due_at.to_s(:long)
Task.first.due_at.to_s(:db) =>2009-02-19 00:00:00

方法二、
<%= task.due_at.strftime("due on %B %d at %I:%M %p") %></li>

方法三、
environment.rb
Time::DATE_FORMATS[:due_date] = "due on %B %d at %I:%M %p"
<%= task.due_at.to_s(:due_date) %></li>


[color=blue]#32 Time in Text Field[/color]

<% form_for @task do |form| %>
...
<%= form.label :due_at_string, "Due at" %>
<%= form.text_field :due_at_string %>
...
<% end %>

class Task < ActiveRecord::Base
def validate
errors.add(:due_at, "is invalid") if @due_at_invalid
end

def due_at_string
due_at.to_s(:db)
end

def due_at_string=(due_at_str)
self.due_at = Time.parse(due_at_str)
rescue ArgumentError
@due_at_invalid = true
end
end

扩展:chronic http://chronic.rubyforge.org/
$ sudo gem install chronic
Chronic.parse('tomorrow') #=> Mon Aug 28 12:00:00 PDT 2006


[color=blue]#35 Custom REST Actions[/color]
#routes.rb

map.resources :tasks, :collection => { :completed => :get }, :member => { :complete => :put }

t#asks/index.rhtml

<%= link_to "Mark as complete", complete_task_path(task), :method => :put %>
...
<%= link_to "Completed Tasks", completed_tasks_path %>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值