2015-01-21 3 views
2

Spree_i18n 프론트 엔드 탐색 바 로케일을 사용자 정의하려고하는데 select_tag에서 link_to로 변경하는 데 문제가 있습니다. EN/CN의 두 가지 로케일 선택만으로 표시하려고합니다. 이것이 가장 좋은 해결책은 무엇입니까?Spree_i18n 프런트 엔드 사용자 정의 로케일

locale.js

load = function() { 
    return $('#locale-select select').change(function() { 
    return $.ajax({ 
     type: 'POST', 
     url: $(this).data('href'), 
     data: { 
     locale: $(this).val() 
     } 
    }).done(function() { 
     return window.location.reload(); 
    }); 
    }); 
}; 

navbar.html.erb

<li id="locale-select" data-hook> 
    <%= form_tag set_locale_path, class: 'navbar-form' do %> 
    <div class="form-group"> 
     <label for="locale" class="sr-only"><%= t(:'i18n.language') %></label> 
     <%= select_tag(:locale, options_for_select(supported_locales_options, I18n.locale), class: 'form-control', data: { href: set_locale_path }) %> 
     <noscript><%= submit_tag %></noscript> 
    </div> 
    <% end %> 
</li> 
+0

당신의 문제는 무엇인가? – MoMolog

+0

나는 Spree가 세션을 사용하여 로케일을 변경하고 있다고 생각합니다. <% = link_to 'EN', set_locale_path (locale : : en)을 입력하면 "Post", 데이터 : {href : set_locale_path} %>를 입력하십시오. url은 http : // localhost : 3000/localeset? locale = en을 렌더링하고 root_path로 리디렉션됩니다. localeset을 없애고 싶습니다. locale = en 그리고 root_path로 리디렉션하지 마십시오. –

답변

1

내 사용자 정의 변형

<%= link_to 'en', spree.set_locale_path(switch_to_locale: :en), method: :post %>