知识点:简化代码和date time datatime的区别

在rails里面会有自带的Date,Time,DateTime. rails console效果如下

Development [9] eatgether(main)> Time.now
2016-11-18 01:47:55 +0800
Development [12] eatgether(main)> DateTime.now
Fri, 18 Nov 2016 01:48:22 +0800

Date的type是date,Time的type是string。在做radio_button的时候,错误的type值会导致在edit的页面radio button 会变成black的,missing something 我们是这样确定日期和时间的 Date.now.end_the_week() 这个是saturday Date.noew.end_th_week()-1.days 这个是sunday 同样的原理我们可以把date换成time和datetime。 这个写不利于code的表达,所以我们要把它封装进config/initialize里面 touch config/i../date.rb

def self.this_saturday 
  Date.today.end_of_week()-1,days
end

def self.this_sunday
  Date.today.end_of_week()
end

rails在运行的时候先去config/application.rb,然后再是config/initializers,再是config/enenvironment.再去app。所以我们可以把需要的值在这里进行一个拦截转换。 我们可以在config里面对date进行格式化的定义 touch config/time_format.rb Date::DATE_FORMATS[:for_date] = “%Y/%m/%d”` 在views里面就可以这样写 Date.now.end_of_week().to_s(:for_date)

还可以在post model对选择地点进行awesome

  def self.default_location 
    ["火锅","日本火锅","潮汕火锅","重庆火锅","海底捞"]
  end

在views new里面这样写 <%= f.input :eat_venue, :collection => Post.default_location, :selected => Post.default_location[0] %> 在views edit里面这样写 <%= f.input :eat_venue, :collection => Post.default_location, :selected => @post.eat_venue %>