Advertisement
Guest User

Untitled

a guest
Apr 24th, 2014
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. validates_date :release_date, :allow_blank => true
  2.  
  3. <%= f.label :release_date, class: "control-label" %>
  4. <%= f.date_select :release_date, :start_year => Date.current.year, :end_year => 1970, :include_blank => true %>
  5.  
  6. <%= @miniature.release_date.strftime("%d %b %Y") unless @miniature.release_date.blank? %>
  7.  
  8. class MyController < ApplicationController
  9. def create
  10. #...
  11. if params[:my_model][:"release_date(2i)"] == ''
  12. # no month is given, insert fake month and day
  13. params[:my_model][:"release_date(2i)"] = '1'
  14. params[:my_model][:"release_date(3i)"] = '1'
  15. mask = 4 # 100
  16. elsif params[:my_model][:"release_date(3i)"] == ''
  17. # no day is given, insert a fake day
  18. params[:my_model][:"release_date(3i)"] = '1'
  19. mask = 6 # 110
  20. else
  21. # full-date
  22. mask = 7 # 111
  23. end
  24. # ...
  25. MyModel.create(my_model_params.merge(date_mask: mask))
  26. # ...
  27. end
  28.  
  29. private
  30.  
  31. def my_model_params
  32. params.require(:my_model).permit(:release_date, :date_mask)
  33. end
  34. end
  35.  
  36. class MyModel < ActiveRecord::Base
  37. #...
  38. def release_date_display
  39. if self.date_mask == 4
  40. return self.release_date.strftime('%Y')
  41. elsif self.date_mask == 6
  42. return self.release_date.strftime('%b %Y')
  43. else
  44. return self.release_date.strftime('%F')
  45. end
  46. end
  47. #...
  48. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement