tva*_*nt2 6 select ruby-on-rails ruby-on-rails-3
我在我的Rails 3应用程序中有一个表单,我想在方法上创建select一年的标签:grad_year.我有一切工作 - 和存储 - 正确使用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 %>
Run Code Online (Sandbox Code Playgroud)
在我的迁移中:
t.date :grad_year
Run Code Online (Sandbox Code Playgroud)
Ale*_*tie 11
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')
Run Code Online (Sandbox Code Playgroud)
从@ alex_peattie的回答中汇总了以上所有内容,我得出以下结论:
<%= select_year Date.today, :start_year => Time.now.year, :end_year => Time.now.year - 95, :field_name => :grad_year, :prefix => :profile %>
Run Code Online (Sandbox Code Playgroud)
与OP的问题一样,我的案例是在一个form_for区块内完成的,因此f.select_year抛出异常.但是如果你只使用记录的:field_name选项,标签将具有不是Rails所期望的id date_grad_year和名称date[grad_year].使用(仅在API的最顶部记录):prefix选项更改date为profile.
所以这比#@%$ ^*&html_options哈希更好,尽管现在已经使用了5年的轨道,但如果没有五次尝试,我似乎无法做到:-).
哦Rails,我多么爱你,但同时肯定很高兴Stack Overflow可以帮助我们所有人理解你令人愉快的特质!
| 归档时间: |
|
| 查看次数: |
11437 次 |
| 最近记录: |