Ruby onRailsv3.2.2とglobalize3v0.2.0ruby-gemsを使用しています。オブジェクトの変換データを更新したいので(globalize3を使用して適切なデータを保存するため)、コントローラーファイルで次のコードを使用しています。
# Note how I set locale variables.
def update
temp_locale = I18n.locale
I18n.locale = 'it' # 'it' stands for italian
@article = Article.find(params[:id])
respond_to do |format|
if @article.update_attributes(params[:article])
format.html { redirect_to article_path(@article), notice: 'Article was successfully updated.' }
else
format.html { render action: "edit" }
end
end
I18n.locale = temp_locale
end
上記のコードは期待どおりに機能します(つまり、データベース内の翻訳されたデータをイタリア語に更新します)が、ローカル変数の設定方法が間違っているか、少なくともまったく正しくないか、おそらく保守できないと思います/読み取り可能。それを改善する方法はありますか?または、一般的に言って、コードのブロックの周りの一時変数の設定と取得を改善する方法はありますか?何についてアドバイスしますか?