0

所以通常我date_select在我的模型表单中的 Rails 应用程序中使用帮助程序,但在我正在构建的最新应用程序中,我需要为每个下拉列表(月、日、年)指定单独的 css id,这不是可能与date_select. 所以相反,我一直在使用select_month,select_dayselect_yearhelpers 。问题来了:如何让它们都描述datetime我数据库中的一条记录?

(顺便说一句,我已经看过这个问题,但它对我来说似乎毫无用处。另外,我不想做一些 jQuery 的东西来处理这个问题。)

这是我到目前为止所拥有的:

#default_time_for is just a helper method that returns the default time for the specified "period" of time (month,day,etc.)

<%= select_month(default_time_for(:month)) %>
<%= select_day(default_time_for(:day)) %> 
<%= select_year(default_time_for(:year), {:start_year => Time.now.year-18, :end_year => 1930}) %>
4

1 回答 1

0

我会在服务器端组合它们:

require 'date'

def update
  date = Date.parse(params[:year] + params[:month] + params[:day])

  # Add to object and save
end

您仍然可以进行批量分配,假设这date是您要分配的字段,您可以执行以下操作:

def update
  date = Date.parse(params[:year] + params[:month] + params[:day])
  params = params.merge( { :user => { :date => date }})

  @user = User.find(params[:id])
  if @user.update_attributes(params)
    # save was good
  else
    # save was bad
  end
end

如果您要使用上面的代码,还要确保您熟悉并减轻了Mass Assignment 发出的安全性问题。

于 2012-06-12T17:21:46.233 回答