2015-01-07 2 views
0

Приложение 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 %> 

Поиск показывает правильные результаты, но всегда в стандартном локали «английский». Он не определяет используемый текущий язык.

У меня разные страницы показа на основе локалей. Они работают правильно во всех приложениях, за исключением отображения результатов из формы поиска.

Как отобразить результаты в правильной локали? Спасибо за любую помощь, я не могу понять, как это сделать ....

ответ

0

В файле routes.rb изменения поиска методы маршрут вроде следующего:

scope "(:locale)" do 
    get 'search' => 'mymodel#show' 
end 
+0

Спасибо, но это не работает для меня. Он продолжает показывать действие show в стандартном языковом английском. У меня была аналогичная проблема с главной ссылкой на логотип в левом верхнем углу, и я исправил ее с помощью класса = "navbar-brand" href = "/ mymodel? Locale = es" из разных макетов локалей. Могу ли я сделать что-то вроде этого, может быть? как? – Francisco

0

мне удалось сделать он создает новое представление, новое действие и новый маршрут для каждой локали. Итак, у меня теперь есть разные частичные, виды, маршруты и действия для каждой локали.

Определенно не сухой путь, но он работает.

0

решение Emu работает, если вы измените

<%= form_tag("/search", method: "get") do %> 

в

<%= form_tag("/"+I18n.locale.to_s+"/search", method: "get") do %> 
Смежные вопросы