Есть несколько проблем:
- Вы пытаетесь представить поле выбора ..... но где это представить?
- Как вы управляете языками на своей странице?
-
Когда подачи с JS, вы должны помнить, что он должен где-то представить.
Как атрибут <form>
action
, вашему JS требуется место для отправки запроса на отправку. Обычно это обрабатывается с помощью формы, но также может быть введен вручную с помощью Ajax.
Вы можете использовать это:
#app/assets/javascripts/application.js
$(document).on("change", "select", function(e) {
$.ajax({
url: "your/url",
data: $(this).value(),
success: function(data) { ... },
error: function(data) { ... }
});
});
Это займет введенное значение select
коробки и отправить данные в преформатированный маршрут в приложении Rails. Это приводит красиво на мой второй вопрос - как вы получаете язык, чтобы оставаться в приложении ...
-
Независимо от вашей структуры, вы должны дать ваше Rails приложение способа определить язык, который вы выбрали.
Если необходимо установить session variable, вам необходимо передать свои данные в контроллер Rails.
Чтобы сделать это, в первую очередь необходимо обеспечить вас есть маршруты, а затем действие контроллера, необходимое для обработки запроса:
#config/routes.rb
post :language, to: "application#language"
#app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
def language
session[:language] = params[:language] #-> this needs to be refactored
end
end
Затем вы сможете перейти обратно некоторый ответ или команду для вызова изменения языка на странице.
Хотя установка языка в бэкэнд, как описано выше, может показаться утомительным, это даст вам возможность установить весь параметр языка для сайта - IE, если вы хотите использовать его для валюты и т. Д., Это будут доступны во всех необходимых действиях.
Надеюсь, это поможет.
Предоставляет ли форму? В противном случае проверьте JS, потому что это не похоже на то, что Rails имеет к этому какое-то отношение. –