【发布时间】:2015-05-19 20:06:39
【问题描述】:
在控制器中:
Order.search_one(year)
private
def year
year = params[:dyear]
year = Time.now.year.to_s unless year
year.gsub(/\D/,'')
end
形式:
text_field_tag :dyear,params[:dyear]
在模型中:
def self.search_one(dyear)
where("YEAR(needby) = #{dyear}").group("DATE_FORMAT(needby, '%m/%Y')").count(:needby)
end
所以如果您在表单搜索框中输入年份并在初始页面加载时一切正常。它会在初始页面加载时调出当前年份,并为任何其他年份提供适当的错误(我在系统中只有 2015 年的数据,因此预计不会填充其他年份)。但是,如果您在搜索字段中按 Enter 键而不输入年份,则会传递一个空白值,而不是将其设置为 Time.now.year.to_s。
关于为什么将空值而不是当前年份传递给模型的任何想法?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4