ruby-on-rails
  • ruby
  • ajax
  • ruby-on-rails-3
  • ruby-on-rails-3.2
  • 2013-01-31 54 views 0 likes 
    0

    我在Rails的一個Ajax功能,其中一個選擇框的選擇值更改內的另一個可用的選項:如何在Ruby on 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的呢?

    感謝您的任何幫助。

    回答

    1

    你如何在非XHR請求中保存URL?您可以簡單地將它作爲查詢字符串參數傳遞給url。然後使用before_filter將I18n語言環境設置爲傳遞參數。

    class ApplicationController < ActionController:Base 
    
        before_filter :select_locale 
    
        def select_locale 
        I18n.locale = params[:locale] || "en" 
        end 
    

    應用控制器一般是我做那種事情,但你可以把它放在一個特定的控制器,如果你喜歡限制使用。

    相關問題