Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何从rubyonrails'date\u select'formhelper中排除月份?_Ruby On Rails_Date_Helper - Fatal编程技术网

Ruby on rails 如何从rubyonrails'date\u select'formhelper中排除月份?

Ruby on rails 如何从rubyonrails'date\u select'formhelper中排除月份?,ruby-on-rails,date,helper,Ruby On Rails,Date,Helper,我想要一个日期\u选择,从现在起仅几个月就可以给我发短信 所以如果我们在三月,它只会显示: - March - April - May - June - July - August - September - October - November - December 现在我有这个: f.date_select :meeting_date,{:order=>[:month,:day]} 是否有类似于此助手的start\u month属性?因此,我可以使用以下内容: f.date_sel

我想要一个
日期\u选择
,从现在起仅几个月就可以给我发短信

所以如果我们在三月,它只会显示:


- March
- April
- May
- June
- July
- August
- September
- October
- November
- December
现在我有这个:


f.date_select :meeting_date,{:order=>[:month,:day]}
是否有类似于此助手的
start\u month
属性?因此,我可以使用以下内容:


f.date_select :meeting_date,{:start_month=>Time.now.month,:order=>[:month,:day]}

但它将插入空白项,因为
:use\u month\u names
要求数组包含12项。要删除它们,您应该编写自己的
date\u选择
helper

如果您只需要几个月,那么您可以制作自定义的helper

config/initializers/constants.rb

MONTHS = ['Jan', 'Feb', 'Marh'] #etc...
如果您有一个带有
|f |
的from,您可以有一个月生成器:

def month_select_builder(f, attr)
    f.select attr.symbolize, options_for_select(MONTHS)
end
如果您只有一个没有生成器的form_标记,则:

def month_select(attr)
    select_tag attr.symbolize, options_for_select(MONTHS)
end

attr
是型号上的字段名,即
:meeting_date
。把它当作字符串传递就行了

这似乎是个坏主意。除夕夜你会有什么有意义的选择?这会节省一年的时间。现在。一年。我想做的唯一一件事就是阻止客户在过去的几个月里安排约会。你有什么特别的原因要选择一个日期吗?如果您只选择月份,为什么不简单地使用普通选择?我希望这是免维护的,并且我希望它自动排除过去的月份。是否有任何助手o我应该手动进行编码?我建议手动进行@Sam有最接近的解决方案。因为你并没有真正使用一个日期本身,所以你可以更容易地自己编写代码,这样你就可以对它进行适当的控制。我建议你考虑一下你的选择在12月份会是什么样子。这一个很好,但它不是像
select\u month
helper?为什么我想要空白的项目
def month_select(attr)
    select_tag attr.symbolize, options_for_select(MONTHS)
end