button_to当前链接与没有在控制器中显示的参数

时间:2015-02-13 17:06:22

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

http://localhost:3000/services/1中,我有一个带有参数的当前页面的按钮:

 <%= button_to table.seats, service_path(@service, table_id: table.id), method: :get, class=["btn"] %>

在页面上,我看是正确的:

<form class="button_to" method="get" action="/services/1?table_id=3">
  <input class="btn" type="submit" value="2">
</form>

但在service_controller我有一个断点,看不到params[:table_id] = 3

(byebug) params
{"controller"=>"services", "action"=>"show", "id"=>"1"}

我做错了什么?

更新:

如果我在控制器中获取当前绝对URL并获得:

(byebug) request.original_url
"http://localhost:3000/services/1"

但按钮中的链接是:

action="/services/1?table_id=3"

怎么可能?

1 个答案:

答案 0 :(得分:0)

您不能在表单的action属性中包含查询字符串。您需要在隐藏的输入中传递表ID。

submitting a GET form with query string params and hidden params disappear