Wenn Sie mit jQuery und Ajax eine übergeordnete Kategorie auswählen, werden untergeordnete Kategoriekandidaten in einem Pulldown-Menü angezeigt. Es wurden jedoch nur die untergeordneten Kategorien nur in die vietnamesische Standardnotation übersetzt.
Beispiel: Übergeordnete Kategorie => Frage Kinderkategorie => 1, Ngôn ngữ và văn hóa 2,Tập huấn kỹ thuật 3,Ứng dụng và thủ tục
Die Ursache war, dass ich das Gebietsschema nicht an den Controller übergeben habe, als ich die untergeordneten Kategorien in Ajax abgerufen habe.
category_pulldown.js
$("#parent").on("change", function () {
//ID aus ausgewählter übergeordneter Kategorie abrufen
var id = document.getElementById("parent").value;
//Unterlassung
$.ajax({
type: 'GET',
data: { parent_id: id }, //ID-Parameter[:parent_id]Setzen Sie ein und senden Sie
url: '/categories/pulldown', //Rufen Sie untergeordnete Kategorien mit der empfangenen ID im Kategorie-Controller ab
dataType: 'json',
}).done(function (children) { //Verarbeitung zur Anzeige der erfassten untergeordneten Kategorie...
Obwohl es sich um einen Teilauszug handelt, habe ich die folgende Methode verwendet, um das Gebietsschema abzurufen.
application_controller.rb
before_action :set_locale
private
def set_locale
I18n.locale = locale
end
def locale
@locale ||= params[:locale] ||= I18n.default_locale
end
def default_url_options(options = {})
options.merge(locale: locale)
end
Verwenden Sie zunächst das Eingabe-Tag, um das aktuelle Gebietsschema beizubehalten. Wenn Sie "type =" hidden "" wie unten gezeigt schreiben, wird es auch aus Sicht des Benutzers nicht auf dem Bildschirm angezeigt.
hoge.html.erb
<input type="hidden" class="current_locale" value="<%= I18n.locale %>">
Fügen Sie dann locale: $ ('.current_locale'). Val ()
hinzu
Die Übersetzungssprache für die Eltern-Kind-Kategorie wurde vereinheitlicht.
category_pulldown.js
$("#parent").on("change", function () {
//ID aus ausgewählter übergeordneter Kategorie abrufen
var id = document.getElementById("parent").value;
//Unterlassung
$.ajax({
type: 'GET',
data: { parent_id: id, locale: $('.current_locale').val() }, //ID-Parameter[:parent_id]Setzen Sie ein und senden Sie
url: '/categories/pulldown', //Rufen Sie untergeordnete Kategorien mit der empfangenen ID im Kategorie-Controller ab
dataType: 'json',
}).done(function (children) { //Verarbeitung zur Anzeige der erfassten untergeordneten Kategorie...
HTML ist praktisch, da Informationen sowohl von Ruby als auch von JavaScript übergeben werden können: smiley:
Recommended Posts