Chapter 10無料公開

もっと勉強をしていくための Tips

北山淳也
北山淳也
2020.10.02に更新

最後にこの後さらに勉強を進めるにはどういうことが考えられるかのTipsを書いておきます。
ここから先は各々自由に学習を進めていってもらえるといいですが、
何も思いつかない人は参考にしてみてください。

今回作ったもののメンテナンス

本書では /home/ubuntu/myapp/app/views/posts/index.html.erb を編集して
ブログとしての見た目を整えましたが、
他にも
/home/ubuntu/myapp/app/views/posts/show.html.erb を編集して
各々の記事の表示ページの見た目を整えたりできますね。
例えばこんな感じです。
(これを実現するためのコードはこの Tips の最後に書いておきますので、まずはヒントを見ずにやってみてください。)

また、 posts 以外にも問合せフォームを追加してみたり、
posts にタグ付け機能を追加してみたりするのも面白いのではないでしょうか。
また、今回 /home/ubuntu/myapp/app/views/posts/index.html.erb の改変を行ったときに

<div class="post" style="padding:10px; margin: 10px; border: solid #009999 3px">

というように HTMLタグの style属性に直接スタイルを指定するコードを追加しましたが、
これを一つのCSSファイルにまとめて読み込ませるようにするには、というようなメンテナンスも
考えられますね。

gem を追加してもっと高機能にする

  • devise
    • 今回作った myApp はログイン機能など実装してないので誰でも記事の投稿や削除が可能です。
    • 「rails devise ログイン」などで検索すれば gem devise を使ったログイン機能の実装方法が書かれていたりするのでやってみるのもいいでしょう
  • ransack
    • 記事の検索機能などを作りたい、と思ったときに where を使うよりも柔軟な書き方をしたい時があります
    • 「rails ransack」などで検索してみてください。

最後に

ここまで読んでくれた方、ありがとうございました。
そしてなんと記事を購入して筆者に缶ビールx2を奢ってくれた方! 本当に助かります。励みになります。

拙い文章でしたが、もし途中で動かない! などの疑問がありましたら
お気軽に @JUNKI555 へご連絡いただければと思います。

これまでも Rails を教えて欲しい! という声をいただくときに
まずは環境構築ということで VirtualBox や Docker の話をやり始めて
そこでよくわかないや、、、 と終わってしまうことが何度かありとても残念でしたが、
PaizaCloud を使うことでかなり早い段階から Railsアプリケーションを開発する部分の話をできるのは
すごく素晴らしいことだなという想いから、今回の執筆に至りました。
Paizaさん、ありがとうございます。
私は Paizaさんに知り合いはいないのですが、エンジニア成長プラットフォームである paiza もみてみて下さい(宣伝)。

それでは以上になります。ありがとうございました。

こたえ

上画像 /home/ubuntu/myapp/app/views/posts/show.html.erb を実現するためのコードです。
/home/ubuntu/myapp/app/views/posts/show.html.erb を開いて以下のように改変してみて下さい。
改変後、 http://localhost:3000/posts にアクセスして「詳細を開く」から確認することができます。

<p id="notice"><%= notice %></p>

<h1><%= @post.title %></h1>

<p>
  <strong>投稿日時:</strong>
  <%= @post.postdate.in_time_zone('Tokyo').strftime("%Y/%m/%d %H:%M:%S(%a)") %>
</p>

<p>
  <strong>公開状態:</strong>
  <%= @post.published ? '公開' : '非公開' %>
</p>

<p style="border: solid #009999 3px;min-height: 300px;">
  <strong>Body:</strong><br>
  <%= @post.body %>
</p>

<%= link_to 'Edit', edit_post_path(@post) %> |
<%= link_to 'Back', posts_path %>