0

Ruby on Rails では、次のように AJAX メソッド内にいて、配列からデータをロードします。

$(function () {
  $.ajax({
    url: '/areas',
    dataType: 'json',
    success: function(dat) {
      for (var i = 0; i < dat.length; i++) {
        var d = (data[i] = {});
        d["length_unit"] = dat[i].length_unit;

問題は、右側で本当に必要なのは I18n.t(dat[i].length_unit) です。config/locales/sp.yml ファイルがあり、これを行うと翻訳が見つかりません。 . 私も次のようなことを試しました:

d["length_unit"] = <%= I18n.t(dat[i].length_unit) %>;

しかし、変数「dat[i]」がそのように見つからないため、それは機能しません。右側の I18n 翻訳を行うにはどうすればよいですか?

追加情報。 サーバーでは、エリアのインデックス メソッドで、次のようにしています。

respond_to do |format|
  format.html
  format.json { render :json => @areas }
end

私が実際に行う必要があるのは、@area.length_unit の代わりに、I18n.t(@area.length_unit) を使用して各 @area をレンダリングすることです。つまり、レンダリングする前に少し前処理を行う必要があり、その方法がわかりません。

4

0 に答える 0