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)) %>");

不幸的是,这不起作用,因为我将我的应用程序本地化为两种不同的语言。

当我现在更改第一个选择框的值时,在另一个选择框内出现错误:

<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 回答