使用Rails 4 date_field传递参数

时间:2015-10-13 15:56:28

标签: ruby-on-rails ruby-on-rails-4

下面是我正在寻找的HTML5输出。目标是将参数从下拉日历传递到我的控制器,并使用所选输入刷新页面。

<form action="/cats/<%=@cats.number_id %>">
    <input type="date" name="as_of_date" id="as_of_date" value="<%= Time.parse(@as_of).strftime("%Y-%m-%d") %>">
    <input type="submit" value="Re-calculate">
</form> 

我注意到date_field帮助器的格式是根据http://apidock.com/rails/v4.0.2/ActionView/Helpers/FormHelper/date_field

@user.born_on = Date.new(1984, 1, 27)
date_field("user", "born_on", value: "1984-05-12")
# => <input id="user_born_on" name="user[born_on]" type="date" value="1984-05-12" />

除此之外,我不知道如何有效地使用date_field助手。

1 个答案:

答案 0 :(得分:0)

在Rails中,您通常会使用form_for帮助程序来生成表单。在该表单中,您可以使用date_field帮助程序,如下所示:

<%= form_for @cat do |f| %>
  <%= f.date_field :as_of_date %>
  <%= f.submit 'Re-calculate' %>
<% end %>

在控制器中,您将@cat初始化为名为ActiveRecord的{​​{1}}模型的实例。这不会产生你所要求的,但希望足够接近:

Cat

如果日期不是猫的属性,您可能希望使用以下内容:

<form class="edit_cat" id="edit_cat_89" action="/cats/89" accept-charset="UTF-8" method="post">
    <input name="utf8" type="hidden" value="✓">
    <input type="hidden" name="_method" value="patch">
    <input type="hidden" name="authenticity_token" value="kdCpL...wEDA==">
    <input value="2015-10-13" type="date" name="cat[as_of_date]" id="cat_as_of_date">
    <input type="submit" name="commit" value="Re-calculate">
</form>

HTH!