Rails 3 date_select仅适用于年份 [英] Rails 3 date_select for year only

查看:34
本文介绍了Rails 3 date_select仅适用于年份的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Rails 3应用程序中有一个表单,我想在其中使用方法:grad_year仅为年份创建一个select标记.我可以正常使用date_select并添加:discard_month:discard_day来进行所有工作-并进行存储.但是,当我渲染@profile.grad_year时,我得到了月和日的值.因此,我想知道如何仅 存储和呈现@profile.grad_year的年份?

这是表格:

<%= f.date_select :grad_year, {:start_year => Time.now.year, :end_year => Time.now.year - 95, :discard_day => true, :discard_month => true}, :selected => @profile.grad_year %>

在我的迁移中:

t.date :grad_year

解决方案

Rails有一个select_year助手:

http://apidock.com/rails/ActionView/Helpers/DateHelper/select_year

因此您的代码应如下所示:

f.select_year(Date.today, :start_year => Time.now.year, :end_year => Time.now.year - 95, :field_name => 'grad_year')

I have a form in my Rails 3 app where I want to create a select tag for just the year on a method :grad_year. I have everything working - and storing - properly using date_select and adding :discard_month and :discard_day. However when I render @profile.grad_year I get the month and day values. So I'm wondering how to store and render only the year for @profile.grad_year?

Here is the form:

<%= f.date_select :grad_year, {:start_year => Time.now.year, :end_year => Time.now.year - 95, :discard_day => true, :discard_month => true}, :selected => @profile.grad_year %>

In my migration:

t.date :grad_year

解决方案

Rails has a select_year helper:

http://apidock.com/rails/ActionView/Helpers/DateHelper/select_year

So your code should look like:

f.select_year(Date.today, :start_year => Time.now.year, :end_year => Time.now.year - 95, :field_name => 'grad_year')

这篇关于Rails 3 date_select仅适用于年份的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆