6

Rails2アプリケーションをRails3.2にアップグレードしていて、イディオムと呼ばれるものに出くわしました。

person.tap |p| do

これをグーグルで検索したところ、非推奨または移動されたようです。私の理解は正しいですか?

SOでその例をいくつか見つけることができるので、私は尋ねます。

4

2 に答える 2

10

tapメソッドは1.8.7からRubyにあります:

タップ{|x| ...} => obj

xブロックに降伏してから、を返しますx。このメソッドの主な目的は、チェーン内の中間結果に対して操作を実行するために、メソッドチェーンを「利用」することです。

1.8.6にはがなかったことに注意してくださいObject#tap。おそらく、tapRailsの古いバージョン(のモンキーパッチとしてObject)にありましたが、1.8.7でRuby自体に追加されました。1.8.6はかなり古いため、Railsバージョンは非推奨になり、最近のRailsリリースでは完全に削除されました。

Object#tapはまだ存在しているため、tapそれ自体は非推奨ではなく、Railsモンキーパッチバージョンのみが削除されています。

于 2012-04-07T18:08:43.563 に答える
4

Object#tapモンキーパッチActiveSupportは、1.9.0および1.8.7以降Rubyの一部であるため、非推奨になりました。

于 2012-04-07T18:13:00.047 に答える