Rails应用程序正在从页面检测不同的区域设置并正确显示,但索引页面中的搜索表单的结果除外。
我的路线:
get 'search' => 'mymodel#show'
我的控制员:
def search
if @mymodel = mymodel.find(params[:id])
else
redirect_to mymodel_path
end
end
我的搜索部分(每个区域设置一个并正确检测):
<div class="actions"><br>
<%= form_tag("/search", method: "get") do %>
<%= label_tag(:q, "") %>
<%= text_field_tag(:id) %>
<%= submit_tag("Search") %>
<% end %>
搜索显示正确的结果,但始终使用默认语言环境“english”。 它不会检测正在使用的当前区域设置。
我有基于区域设置的不同显示页面。除了显示搜索表单的结果外,它们在整个应用程序中都能正常工作。
如何以正确的区域设置显示结果? 感谢您的帮助,我无法弄清楚如何做到这一点......
答案 0 :(得分:0)
在routes.rb
文件中,更改搜索方法路线,如下所示:
scope "(:locale)" do
get 'search' => 'mymodel#show'
end
答案 1 :(得分:0)
我设法为每个语言环境创建新视图,新操作和新路由。 所以我现在为每个语言环境提供了不同的部分,视图,路由和操作。
绝对不是干燥的方式,但它的工作原理。
答案 2 :(得分:0)
如果你改变了,鸸's的解决方案就可以了。
<%= form_tag("/search", method: "get") do %>
到
<%= form_tag("/"+I18n.locale.to_s+"/search", method: "get") do %>