Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- validates_date :release_date, :allow_blank => true
- <%= f.label :release_date, class: "control-label" %>
- <%= f.date_select :release_date, :start_year => Date.current.year, :end_year => 1970, :include_blank => true %>
- <%= @miniature.release_date.strftime("%d %b %Y") unless @miniature.release_date.blank? %>
- class MyController < ApplicationController
- def create
- #...
- if params[:my_model][:"release_date(2i)"] == ''
- # no month is given, insert fake month and day
- params[:my_model][:"release_date(2i)"] = '1'
- params[:my_model][:"release_date(3i)"] = '1'
- mask = 4 # 100
- elsif params[:my_model][:"release_date(3i)"] == ''
- # no day is given, insert a fake day
- params[:my_model][:"release_date(3i)"] = '1'
- mask = 6 # 110
- else
- # full-date
- mask = 7 # 111
- end
- # ...
- MyModel.create(my_model_params.merge(date_mask: mask))
- # ...
- end
- private
- def my_model_params
- params.require(:my_model).permit(:release_date, :date_mask)
- end
- end
- class MyModel < ActiveRecord::Base
- #...
- def release_date_display
- if self.date_mask == 4
- return self.release_date.strftime('%Y')
- elsif self.date_mask == 6
- return self.release_date.strftime('%b %Y')
- else
- return self.release_date.strftime('%F')
- end
- end
- #...
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement