質問: job.all end ``` ``` views/jobs/showの中身 Name: <%= @user.name %> <% @jobs.each do |job| %> <%= job.job_type %> <% end %> ``` ``` 実際の画面 Name: police ・guard ・driver ・etc ``` ### 悩み 試したこと1の参考のようなスマートな方法を教えてください。
回答: コメントに、このようなモデル設計になった理由は特にない、との事だったので、 スマートに出来ない理由は「設計がよくないから」です。 私もやるとしたら「試した事2」の方法になります。 モデルのインスタンスに入っている属性から、クラスやメソッドを抽出してconst_getしたり、sendしたり、method_missingをオーバーライドする技法は、メタプログラミング的でRubyの真骨頂ともいえます。 しかし、頻発するようだったりすると、大体は設計ミスが疑われます。 データモデリングに関しては、奥が深すぎて回答欄に書けるようなものではないので、 自分で書籍や各種サイトで情報を集めて勉強するしかないのですが、 どんな簡単なシステムでも、コードを書き始める前に、 ざっとしたクラス図と、ユースケース図を書くようにすると、 大きな間違いは起きない気がします。 試しに、サンプルのクラス図を書けるかどうか、トライしてみると良いかと思います。 その上で、何が怪しいのか、どこがふわふわしているせいでおかしくなっているのかを考えてみるのは、 良い学習になるかと思います。