あとは検索フォームの設置。それっぽくサイドバーに設置してみる。サイドバーに設置するため、view/layouts/tweets.html.erbを修正する。</div><!--/span-->こんな感じに。9月別アーカイブコメントを残すなんとなくWebアプリっぽくなってきたTwiceだが、Twitterが公式で提供しているアーカイブのダウンロードでは、JSで動作する過去のツイートを参照できる機能が付いている。月別アーカイブと検索機能が付いているため、せめてそれぐらいは実装しないと、ここまで作った甲斐がないというものではないか。いうわけで、月別アーカイブ機能的なものを作りたい。サイドバーあたりに、投稿があった年月+件数を表示し、選択するとその年月のツイートを参照できる、といった具合にしたい。コントローラにアーカイブを集計するメソッドを作る。するために、timestampをyyyymmに変換し、groupで指定する。end&#91;/ruby&#93;Tweetページの時のみサイドバーに表示したいので、view/layouts/tweets.html.erbを作成する。</body></html>年月件数表示にはヘルパーメソッドを作成した。コントローラではyyyyMMと件数という形式で集計結果が出される。’yyyy年MM月’とも出せたのだが、アーカイブ表示画面の遷移に使えなくなりそうなので、単純な形式にした。そこでtweet_helper.rbにymconvというヘルパーメソッドを作り’yyyy年MM月(件数)’という形式の文字列で出力させることでViewをスッキリさせる。endendこんな感じで表示される。ここからリンクをクリックしたら、その年月のツイートが表示されるようにしたい。コントローラにメソッドを追加する。年月のパラメータを受け取って、ツイートを絞り込む。ルーティングも修正する。archivesへのルートを追加。end「yyyy年MM月のツイート」と表示したいので、もう一つhelperメソッドを作る。endこれを使ってViewファイル、archives.html.erbを作成する。%>ツイートがあればこんな感じで表示される。8モデルのリレーションシップコメントを残す前回の時点で作成したモデルはTweet、Userの2つ。Userはユーザー認証のために作成したが、TweetはUserに紐付いていないため、どのユーザーが登録したツイートかがわからない。そこで、この2つを関連付けたい。Tweetにuser_idを追加する。user_id:integer作成されたmigrationファイル。rakeコマンドを実行して、テーブルに列を追加する。各modelにリレーションシップの記述を追記する。Tweetは1つのUserに紐付いているためbelongs_toとなる。Userは複数のTweetをもつためhas_manyとなる。controllerを修正する。tweet_controller.rbのindexを修正し、ログイン済みユーザに属するツイートのみの表示とする。import_csvの中で、モデルのimport_csvを呼び出す引数に、ログイン中のユーザを追加しておく。modelに記述されているツイートの登録も修正する。引数にUserモデルを追加する。列user_idにはuserのidをセットする。取り込み前の削除では、userに関連したレコードのみを削除したいので、修正しておく。差分はこんな感じになる。現在登録されているツイートはどのユーザにも属していないので、通常どおりアクセスすると、表示されない。一度取り込みなおすと、すべて表示されるようになる。ユーザを変えて取り込みなおすと、ログインしたユーザとして取り込んだツイートが表示される。7renderを使って一覧を整形コメントを残す現在のツイート一覧はscaffoldで生成されたデフォルトのページのままで、非常に見づらい。ツイート一覧を表示するのが目的で、実際のTwitterのTLとは違い、自分のツイートしかないのでひとまず、1ツイート本文、2ツイート日時の2つの情報のみを表示させよう。renderを使うのでViewファイル、_tweet.html.erbを作成する。%></p></div>viewファイルtweets/index.html.erbは思い切って書き換える。一度表示させてみよう。いい感じに必要な情報だけ表示できるようになった。ページネーションも問題なし。twilogを参考に(笑)tweets.css.scssを少しだけ修正。}}いい感じに見やすくなったかな。時間の表示が日本時間ではないので修正したい。config/application.rbにタイムゾーンの記述を追加する。'Tokyo'これで日本時間表示になる。時刻の表示フォーマットを指定しよう。Viewファイル、tweets/_tweet.html.erbを修正。%></p></div>実行してみると、見やすい表示に。6トップページの設定コメントを残す今のところトップページは、ログインしていてもしてなくてもツイート一覧のページが表示される。ユーザー認証機能を実装したので、ログインしていない→トップページ、ログインしている→ツイート一覧という感じにしたいとおもう。home/indexを作成する。index作成されたViewファイル、home/index.html.erbを編集する。