如何在Rails中将GET参数转换为另一种格式?

时间:2014-07-27 07:38:03

标签: ruby-on-rails ruby activerecord

在我的Rails应用中,我有一个简单的表单,按日期过滤所有用户invoices

<%= form_tag invoices_path, :method => 'get' do %>

  <%= text_field_tag :date, params[:date] %>

  <%= submit_tag "Search" %>

<% end %>

当用户以其首选日期格式输入日期时,例如27/07/2014,我希望将其显示在网址/invoices?date=2014-07-14中,因为数据库可以更轻松地处理这个问题,并且看起来也比/invoices?date=25%2F07%2F2014更好。

在Rails中有没有办法转换这样的GET参数?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

首先,日期美化将在客户端方面完成,因为您希望漂亮的值已经显示在查询参数中。

form_tag可能会提供onsubmit回调:

<%= form_tag invoices_path, 
             :method => 'get' 
             :onsubmit => 'return validate(this)' do %>

此处validate()将是一个返回truefalse的javascript验证方法;你可以自由地美化和覆盖那里的日期值。

可能有更优雅的方式来实现这一目标,但上述方法对我来说效果很好。希望它有所帮助。