hy,我有一个表格来改变当前的语言。它与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但是根据更新使用locale参数集。 我不知道,你能帮助我吗?
答案 0 :(得分: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