使用 form_for 正确存储日期信息

bsi*_*qui 2 ruby-on-rails form-for rails-activerecord

我有一个允许用户创建事件的表单。用户填写的字段之一是日期。目前这是提交日期的代码:

<%= u.label :date %> <%= u.text_field :date, :placeholder => 'mm/dd/yyyy' %>
Run Code Online (Sandbox Code Playgroud)

出于某种原因,如果用户输入 01/02/2012,它将存储为 dd/mm/yyyy,认为该事件发生在 2 月 1 日而不是 1 月 2 日。我已经将我的初始化文件配置为按照我希望的方式显示日期/日期时间(正如这里的几篇文章所推荐的那样),但这仍然是一个问题

更新 - 这是我的完整表格:

    <%= form_for(@party_profile) do |u|%>
    <p>
        <%= u.label :name %><%= u.text_field :name %>
    </p>

    <p>
        <%= u.label :location %><%= u.text_field :location %>
    </p>

    <p>
         <%= u.text_field :date, :placeholder => 'dd/mm/yyyy' %>

    </p>

    <p>
        <%= u.label :password %> <%= u.text_field :password %>
    </p>

    <%= u.submit "Let's Party!", :class => "btn btn-primary" %>
    <% end %>
Run Code Online (Sandbox Code Playgroud)

我曾尝试按照下面的建议用 select_date 替换 u.text_field,但随后出现错误:

  undefined method `select_date' for #<ActionView::Helpers::FormBuilder:0x007f9e5e8c69d8>
Run Code Online (Sandbox Code Playgroud)

bsi*_*qui 6

<%= u.label :date %> <%= u.date_select(:date, :order => [:month, :day, :year]) %>
Run Code Online (Sandbox Code Playgroud)

是我能想到的最好的 - 仍然没有完全按照我想要的方式格式化