0

嗨,我有一个表格可以更改当前语言。它与 users_controller 中的更新操作相关联,如下所示:

<%= form_for current_user do |f| %>
 <%= f.select :locale, [['En', 'en'], ['Pt', 'pt']] %>
 <%= f.submit %>
<% end %>


class UsersController < ApplicationController
 def update  
  @user.update(user_params)
  I18n.locale=@user.locale
  redirect_to root_path
 end

 def user_params
  params.require(:user).permit(:locale)
 end
end

更新后我不想redirect_to root_path 但我想redirect_to :back 但根据更新设置语言环境参数。我不知道,你能帮帮我吗?

4

1 回答 1

0

尝试这个:

class ApplicationController < ActionController::Base

  before_filter :set_locale

  private

  def set_locale
    I18n.locale = current_user ? current_user.locale : 'en'
  end
end

那么您的更新操作就是:

 def update  
   @user.update(user_params)
   redirect_to :back
 end
于 2013-10-01T14:48:47.737 回答