2015-10-13 88 views
1

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

<form action="/cats/<%[email protected]_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帮手。

+0

嗨,尼克,假设你完全没有经验的Rails安全吗? – Raffael

+0

@Raffael我正在慢慢学习。 – Nick

+1

考虑检查出僵尸的Rails。他们有很好的初学者教程。 – Raffael

回答

0

在Rails中,您通常会使用form_for帮助程序生成表单。内部的表格然后你可以使用一个date_field帮手,就像这样:

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

在控制器中,你会初始化@cat为名为CatActiveRecord模型的实例。这不会产生正是你问什么,但希望足够接近:

<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> 

如果日期是不是猫的属性,你可能想使用这样的事:

<%= form_for "/cats/#{cat_id}" do |f| %> 
    <%= date_field_tag :as_of_date, Date.new(2015, 10, 13) %> 
    <%= f.submit 'Re-calculate' %> 
<% end %> 

HTH!