[英]Ruby on Rails: In controller, retrieve data from text_field based on HTML ID
[英]Ruby on Rails - Passing date from text_field to controller
我需要將日期從text_field發送到控制器。 以為我有這個
<%= link_to 'Click me', :url => {:controller => 'test', :action => 'action', :submit => 'field_to_submit', :method => :post, :remote => true} %>
<%= form_tag(my_path, :method => "get") do %>
<%= label_tag(:q, "Choose date:") %>
<%= text_field_tag(:q) %>
<%= submit_tag("New Date") %>
<% end %>
在控制器中,我有這個:
def action
if(params.has_key?(:q))
@temp=params[:q]
end
...
問題是,如果我將例如2014-01-20放在text_field中,我將在@temp變量中得到1993。 意思是,不是將日期作為字符串傳遞(我想要的,因此我可以稍后使用它),而是將“-”解釋為一個運算並給出結果。
有什么辦法我可以糾正嗎?
謝謝!
也許用以下方式解析該字符串:
> DateTime.parse(params[:q]) # if params[:q] is a date
=> Mon, 20 Jan 2014 00:00:00 +0000
然后,您可以適當地處理它。
您是否嘗試過strptime
DateTime.strptime("2014-01-20","%Y-%m-%d")
#=> #<DateTime: 2014-01-20T00:00:00+00:00 ((2456678j,0s,0n),+0s,2299161j)>
我猜ERB正在評估提供的字符串,然后將其發送到控制器,因此您可以嘗試以下操作:
<%= link_to 'Click me', :url => {:controller => 'test', :action => 'action', :submit => 'field_to_submit', :method => :post, :remote => true} %>
<%= form_tag(my_path, :method => "get") do %>
<%= label_tag(:q, "Choose date:") %>
<%= text_field_tag(:q).to_s %>
<%= submit_tag("New Date") %>
<% end %>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.