0

RailsにAjax関数があり、選択ボックスの選択された値によって、別のボックス内で使用可能なオプションが変更されます。

# application.js
$("#project_person_id").change(function() {
    $.ajax({
        url: '/projects/get_billing_address_types',
        data: 'person_id=' + this.value,
        dataType: 'script'
    })
});

# get_billing_address_types.js.erb
$('#project_billing_address_type').html("<%= escape_javascript(options_for_select(@types)) %>");

残念ながら、アプリを2つの異なる言語にローカライズしたため、これは機能しません。

最初の選択ボックスの値を変更すると、他のボックス内でエラーが発生します。

<option value="h">translation missing: en.views.home</option>

ロケールをjavascriptに渡す方法はありますか?

助けてくれてありがとう。

4

1 に答える 1

1

非 XHR リクエストで URL をどのように保持していますか? URL にクエリ文字列パラメーターとして渡すだけです。次に before_filter を使用して、渡されたパラメーターに I18n ロケールを設定します。

class ApplicationController < ActionController:Base

  before_filter :select_locale

  def select_locale
    I18n.locale = params[:locale] || "en"
  end

アプリケーションコントローラーは通常、そのようなことを行う場所ですが、必要に応じて特定のコントローラーに入れて使用を制限することもできます。

于 2013-01-31T19:02:12.847 に答える