我在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?
感谢您的帮助。
答案 0 :(得分:1)
如何在非XHR请求中保留URL?您只需将其作为查询字符串参数传递给url即可。然后使用before_filter将I18n语言环境设置为该传递的参数。
class ApplicationController < ActionController:Base
before_filter :select_locale
def select_locale
I18n.locale = params[:locale] || "en"
end
应用程序控制器通常用于执行此类操作,但如果您愿意,可以将其放在特定的控制器中以限制使用。