在控制器中:
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。
关于它为什么将空值传递给模型而不是当前年份的任何想法?
答案 0 :(得分:3)
<%= book.user.name %>
的值可能是params[:dyear]
,在有条件的情况下,基本上是这样的:
''
因此,您应该使用string = ''
if string
puts "true?"
else
puts "false"
end
#=> "true?"
或:
params[:dyear].present?