Как мне обрабатывать объекты даты в ruby ​​на рельсах? - PullRequest
3 голосов
/ 09 апреля 2009

Я использую помощник по рельсам, который создает 3 списка выбора, чтобы позволить пользователю выбрать дату. Если я назначаю помощнику имя, он устанавливает все 3 списка выбора на это имя, а затем проходит только последний (перезаписывает предыдущий). Что мне нужно знать: каков наилучший способ взять набор из 3 списков выбора (день, месяц, год) и объединить их, чтобы создать объект даты и сохранить его в моей базе данных?

Вот мое поле даты:

<%= select_date Date.today, { :order => [:month, :day, :year], :start_year => Date.today.year, :end_year => Date.today.year + 3 } %>

и вот параметры, переданные моему контроллеру (выплюнули из моего журнала разработки)

Parameters: {"date"=>{"month"=>"4", "day"=>"9", "year"=>"2009"}, 
"action"=>"create", "controller"=>"shows", 
"show"=>{"headline"=>"for example, \"Parking lot is next to the bookstore on Main Street\"", "venue_id"=>{"venue_id"=>""}, "cents"=>"00", "dollars"=>"00"}, 
"user_id"=>"3", "load_in"=>"-2", "show_time"=>"-2", "query"=>"Type venue name & location here...", "doors"=>"-2"}

Как видите, дата прошла. В идеале я хотел бы, чтобы дата передавалась в качестве приемлемого объекта даты моему контроллеру. Кроме того, я хотел бы, чтобы он передавался в хеше "show", поскольку он показывает данные. Возможно ли это с некоторыми простыми модификациями рельсов? Или мне нужно написать какой-нибудь JS (на мой взгляд, немного грязный для этого решения)?

1 Ответ

6 голосов
/ 09 апреля 2009

Я думаю, что вы хотите date_select вместо select_date, поскольку вы хотите, чтобы оно было связано с конкретным полем в вашем объекте шоу.

  date_select("show", "date", :default => Date.today, 
    :order => [:month, :day, :year], :start_year => Date.today.year, 
    :end_year => Date.today.year + 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...