嗨,我有一个铁轨形式:
<%= form_tag("/orders", action: "find", method: "get") do %>
<%= text_field_tag(:barcodeform) %>
<%= submit_tag("find") %>
<% end %>
这是我的routes.rb
post 'orders/uploadFile'
resources :orders do
member do
get 'next_state'
end
member do
get 'last_state'
end
member do
get 'last_state_ablauf_2'
end
member do
get 'log'
end
member do
get 'save_Order'
end
member do
get 'auftrag_annehmen'
end
member do
get 'find'
end
end
控制器: 没有什么特别的,我只是设置了一个名为find的方法,重定向是否有效。
现在当我在表单中输入一个值时,它会这样做:
http://example/orders?utf8=%E2%9C%93&barcodeform=631&commit=find
但我希望它能做到这样的事情:
http://example/orders/531
我没有得到任何搜索结果,它只显示所有条目。 我该如何写表格来获得这种结果“/ orders / id”? 有任何想法吗? 感谢
答案 0 :(得分:0)
有一些事情正在发生,但首先您应该了解utf8
信息是由Rails表单助手for a reason生成的。如果你真的不想要它,那么建立你自己的<form>
而不是使用表单助手。
接下来,由于用户表面上提供了barcodeform
,因此它不应该是表单操作的一部分。你可以通过一些javascript来完成类似的东西,但这不是最好的做法。您希望barcodeform
值作为查询参数,以便您可以使用params[:barcodeform]
在控制器中访问它,并以适当的方式处理用户输入的任何疯狂。
最后,您需要修复路线。您的路线目前正在生成如下所示的网址:
http://example/orders/:id/find
其中,因为您还不知道:id
,所以您不想要。相反,请使用collection
:
collection do
get 'find'
end
现在您的表单应如下所示:
<%= form_tag("/orders/find", method: "get") do %>
...
<% end %>