1. ホーム
  2. ruby-on-rails

[解決済み] Ruby on Railsです。複数のハッシュキーを削除する

2022-04-26 03:31:19

質問

よくこんなことを書いている自分がいます。

params.delete(:controller)  
params.delete(:action)  
params.delete(:other_key)  
redirect_to my_path(params)  

削除の痕跡は違和感があり、どちらもない。

[:controller, :action, :other_key].each do |k|
  params.delete(k)
end

もっとシンプルでクリーンなものはないのか?

どのように解決するのですか?

をご存じないようですね。 ハッシュ#except メソッドが追加されました。

というように、コードを簡略化することができるようになります。

redirect_to my_path(params.except(:controller, :action, :other_key))

また、Railsチームがパッチを当ててくれるので、パッチの修正も必要ありません。