タグ

moduleとrailsに関するtakaesuのブックマーク (2)

  • Railsを事例にして学ぶ、むやみにモジュール分割しているとハマる落とし穴とその回避策 - Qiita

    この記事は リクルートライフスタイル Advent Calendar 2016 5日目の記事です。 ビューティー開発Tの@tacuma_igeiです。主にRailsを使って、まだここにない出会いを創出していこうと励んでいます。 はじめに 中規模〜大規模のRails開発をする上で、多くの人が直面するであろう「ApplicationController・Helper散らかる問題」に対して、多くの人がやりがちな対処法とその落とし穴について理解を深め、回避策を提示していければと思います。 需要がありそうなので 事例をRailsにしていますが、基的にRubyの話なので、Sinatra や Padrinoでも同様の問題が起こりえます。 結論 結論から述べると、 モジュールに切り出してMix-inする場合は、module_functionを使って、明示的にモジュール関数を呼び出すようにしましょう 時間

    Railsを事例にして学ぶ、むやみにモジュール分割しているとハマる落とし穴とその回避策 - Qiita
    takaesu
    takaesu 2016/12/06
    module_functionを使うといい
  • Rubyのmoduleをmix-inする際のincludeとextendの違いをシンプルな例で理解する

    Rubyのclassにmoduleをmix-inする場合に、moduleをclassにincludeした場合とclassをmoduleでextendした場合で何が違うのか? よく判らなくなるのでシンプルな実例でまとめます。 「モジュールがクラスメソッドではなく、インスタンスメソッドを定義しているとき、これらのインスタンスメソッドは、ほかのクラスにミックスインできる」(「プログラミング言語Ruby」261ページ)とあります。そして「モジュールをミックスインするための通常の方法は、Module.includeメソッドだが、Object.extendを使う方法もある」(同262ページ)となっています。includeとextendで何が違うの? となり、時どき理解の足りない書き方をしてNoMethodError: undefined method...のような例外をだしてしまうことがあります。そこ

  • 1