タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

rubyとpathとstiに関するsnjxのブックマーク (2)

  • [Rails] STI(Single Table Inheritance)でコントローラも一つに纏める | DevelopersIO

    Rails で STI(Single Table Inheritance)を使った時の、コントローラの実装をどうするか?という事について書いてみたいと思います。 STI(単一テーブル継承)とは オブジェクト指向の基概念として、あるクラスを元にサブクラスを定義する継承があります。 この継承は、プログラミング言語ですとと予め機能が提供されていることが多いですが、 RDB ですとテーブル構成によって表現する場合があります。 *1 今回使う STI は、一つのテーブル内に継承関係にあるクラスのカラムを全て持ってしまう方法です。 例として Player クラスを継承した Footballer クラスと Cricketer クラスがあるとします。 親クラスに共通のプロパティ、子クラスがそれぞれのプロパティを持っていますが、これを STI で表現すると以下になります。 テーブルのレコードがどちらの型に

    [Rails] STI(Single Table Inheritance)でコントローラも一つに纏める | DevelopersIO
  • [Rails] STI(単一テーブル継承)とメタプログラミングでDRY - Qiita

    何も考えないで作ると、rock/pops/jazzそれぞれのモデル、ビュー、コントローラに 似たような記述・コピペが増えそうな予感を感じて頂けたでしょうか。 では、それを防ぐために、まずはSTIから。 (※追記) 実は上記だけの要件であれば userテーブル、musicテーブル、genreテーブルのみを用意して user has_many genres through musicsのassosiationでも実現可能 (そもそもrock/pops/jazzモデルを用意する必要がない)だったりします。 実際は「今後それぞれのgenreごとに特有な処理を複数追加していきたい」というケースを想定して、 各genre個別のモデルを用意することを前提にしています。 ちょっと要件の例がいまいちだったかもしれず、申し訳ありません。。 STI(Single Table Inheritance/単一テーブル

    [Rails] STI(単一テーブル継承)とメタプログラミングでDRY - Qiita
  • 1