%></ul>caseを使って、Model毎の場合分けを行っています。renderメソッドに、パーシャルに名前を与え、対象オブジェクトを指定することで、部分テンプレートを使って単一のTextModelをレンダリングするように指示します。実行して以下の様な表示になればOKです。ブロックは以下の様になります。%></ul>LinkModelのrenderに注目してください。%>というシンプルな形になっています。modelの型(クラス)を見て、決まった位置にあるテンプレートを探してレンダリングしてくれます。1つ1つの型から、決まった位置にあるテンプレートを探してレンダリングします。内部的には少しことなりますが、どちらの場合も(ルールに従ってテンプレートを置いておけば)railsがそれに応じて処理します。細かく指定することも、railsのルールに任せることも可能です。</li>で指定して、各モデル用の部分テンプレートを用意しておけば上手く処理してくれるわけですから、case文自体が不要ということになりますね(railsが自動でやってくれることを自分でもやってしまっている)。要素ごとにhtml要素を分けたい場合は注意してください。以下の様にした場合は、上の場合と結果が異なります。モデル1つ分のレンダリングを行い、liはモデルの数だけ作られます。このあたりは用途に併せて使い分けてください。コントローラとビューは以下の様になります。省略している部分、部分テンプレートの内容は上から探してください。結論を先に現状コードから読み取れない部分があるので後で丁寧に説明しますが、コメントで書いたような部分テンプレートを使用しているのであれば、コントローラでソート済みの一つのコレクションにしておいて、viewの中でループで回してrenderを呼び出せばテンプレートはモデルのクラスから自動で判別されるので、コレクションのソート順に出力させることができます。詳細railsに詳しくないので適切な省略しどころがわからないため、丁寧すぎる(冗長な)説明になるかもしれません。ルーティングなどもサンプルなので適当なURLにしています。並び替えの部分だけ参考にしてください。4でも問題ないと思います。準備部分に関しては自分の環境と相違ないか確認したりするために使ってください。ModelやControllerの作成から始めます。Modelの用意3種類、適当に用意しました。今回はフィールドやテンプレートがどうなっているのか見えなかったので、一つだけフィールドが異なるために共通化できないモデルにしました。以下のコマンドでモデルを用意します。uri:string```text_modelだけフィールドが異なります。DBの更新を行います。このサンプル用のコントローラ/テストデータの作成このサンプル用のコントローラを作成します。メソッドを追加します。endend```textまたはuriの最初の1けたの数字がモデル内の順番、3桁が全てのモデルの中での順番を表しています。最終的に3桁の数字の順に並んでいれば、古い順に並んでいるだろうという目安になります。ルーティングを設定して、該当ページにアクセスしてデータの初期化を行います。アクセスすればデータが再作成されます。質問の再現ここで、質問と大体おなじ状況がそろったと思いますので、質問の状態を再現したいと思います。あたるものと考えて話を進めます。このメソッドには略記法もあります。@productsがproductインスタンスのコレクションであるとすると、index.html.erbに以下のように書くことで同じ結果を得られます。コントローラにアクションの追加コントローラに`bad_one`メソッドを追加します。%>```renderにモデルのコレクションを渡す事で、コレクション内のそれぞれのテンプレートを適用しています。そのため各モデルの部分テンプレートを用意する必要があります。前述の通りパーシャル(部分)テンプレートが必要になるため、アンダースコアで始まるファイル名で、各モデル用のテンプレートを作成します。'qait9372_sample#bad_one'````http://localhost:3000/bad_one`にアクセスします。すると各モデル毎に並んだ状態になります。%>`)でエラーが出る場合は、今回は必要ないので該当の行を削除してください。バージョンの問題です。)これをcreate_at順になるようにします。単一のコレクションをviewに渡すようにする現在、viewでは各モデルごとに1回ずつ、renderを呼び出しています。モデル毎に別々に処理されてしまうので、現在のままではこの塊の順番は変更できません。今はモデル毎に3つのコレクションを受け取っていますが、これを1つのコレクションにまとめてしまってそれをviewで処理するようにつくりかえます。コントローラに新しいアクションの用意bad_oneは比較用に残しておくとして、新しいメソッドを追加します。以下のファイルを作成し、ビューの内容を記述します。部分テンプレートは使わずに、確認のためのコードを書きます。ルートの追加ルーティングを追加します。実行きちんとモデルが扱えている事を確認します。以下の様な出力になっていれば問題ありません。テンプレートを使うように修正する。並び変わりましたが、これまでの部分テンプレートが利用できていません。部分テンプレートを使用してレンダリングされるように以下のコードを追加します。