Rails构建方式&使用表单的post参数重定向到url

时间:2011-01-19 21:08:07

标签: ruby-on-rails post

我想这样做是实现这一目标的最佳方式 关注Rails。

我有一个“预订表格”,有5个字段(属性,儿童数量, 成人数量和2个日期 - 出发和到达)基于这些 字段,我需要构建一个URL并将用户重定向到此URL。 现在,我有两个问题。

1)我如何捕获控制器中的POST参数,因为我 将表单映射到这样的操作:

<% form_tag(:action => "booking") do %> 

并将其路由到这样的控制器操作:( Pages Controller, 预订行动)

match 'pages/booking' => 'pages#booking' 

2)这是Rails实际完成这种事情的方式吗? 我过去在PHP中这样做过,但现在我有需要 实际上是在Rails中做到这一点,你可以让Rails Gurus激励我吗?

2 个答案:

答案 0 :(得分:3)

要访问控制器中的参数,即使是在POST正文中提交的参数,也要使用params哈希。例如:params[:form_field]

要使用控制器重定向到其他网址,请使用redirect_to。您当然可以使用params中的值来构建网址并将其传递给redirect_to

答案 1 :(得分:0)

如果您正在使用资源丰富的路线,这是处理此类事情的最佳方式,那么您可以通过传统方法进行处理:

resources :bookings

然后你将表单发布到bookings_path,这样就可以了,就像BookingsController#create一样。在可能的情况下,最好在模型和控制器之间建立强相关性。

resources中的routes.rb定义可以帮助您创建可以构建的所有默认RESTful操作。如果您确实需要自定义路线,则始终可以使用:as选项对其进行重命名,或者单独布线。

如果您要创建自己的任意路线,例如/pages/booking,您将会造成其他人必须维护的混乱。很多时候,其他人就是你。