我安装了calendar_date_select gem,我试图在calendar_date_select标签中发布格式参数,只有月和日。
日历日期选择脚本工作正常,但是当我选择日期时,它会显示此格式“年 - 月 - 日”所以我想要的是单击这将只显示calendar_date_select_tag内的月和日可能吗?或者可能是另一种方式来删除这样的日志?
这是日志:
Processing TestController#sending (for 127.0.0.1 at 2014-08-22 17:17:06) [POST]
Parameters: {"d1"=>"01-01", "d2"=>"31-01", "authenticity_token"=>"yeah=", "commit"=>"Search"}
我不想每次都删除这一年来使这个工作,因为当删除年份并保持月和日时实际工作正常。
这是控制器
def sending
@clients= Client.find_by_mysql(["select * from clients where date_format(happy_birthday,'%m-%d') BETWEEN ? AND ?",params[:d1],params[:d2] ])
end
这是视图
<head>
<% CalendarDateSelect.format=(:hyphen_ampm )%>
<% calendar_date_select_style "silver" %>
<% translation_calendar %>
</head>
<% form_tag :controller=>"test",:action=>"sending" do %>
From: <%= calendar_date_select_tag "d1",params[:d1] %>
TO: <%= calendar_date_select_tag "d2",params[:d2] %>
<%= submit_tag "Search", :class=>"button" %>
<% end %>
这是截图
我尝试了这个,但我为“01-01”得到了未定义的方法`strftime':String
<%= calendar_date_select_tag "d1",params[:d1].strftime("%m-%d")%>
请有人可以帮助我或建议吗?
提前致谢。
答案 0 :(得分:1)
我看到了你的问题,这很容易,试试这个:
在您的控制器中:
def sending
##### THIS IS IF YOU HAVE PROBLEMS WITH NIL PARAMS IN CALENDAR TAG
if params[:d1].nil?
@d1 = params[:d1]
else
if params[:d1].present?
@d1 = Date.parse(params[:d1]).strftime("%m-%d")
end
end
if params[:d2].nil?
@d2 = params[:d2]
else
if params[:d2].present?
@d2 = Date.parse(params[:d2]).strftime("%m-%d")
end
end
################
@clients= Client.find(:all,:conditions=>['date_format(happy_birthday,"%m-%d") BETWEEN ? AND ?',@d1,@d2] )
end
在您看来:
<% form_tag :controller=>"test",:action=>"sending" do %>
From: <%= calendar_date_select_tag "d1",@d1 %>
TO: <%= calendar_date_select_tag "d2",@d2 %>
<%= submit_tag "Search", :class=>"button" %>
<% end %>
希望这些提示可以提供帮助。