Ruby on Rails データベース系サイトに画像投稿してコメントするサイトの開発記録

キャンプ系のサービスをどんどん作っていきたいのですが、Ruby on Railsを始めたばかりでまだ全然使いこなしていないので、先ずは出来る事・過去にCakePHPで作ったサイトと同じようなものを、Railsで作り直してみる感覚で始めました。

CakePHPで作っていた記録はこれです。

PHPでの検索機能付きデータベース系サイト開発記録
2016/4/7の開発記録 AA作成ツールをやめていきなりCakePHPでのフレームワークを使用したサイトを作り始めてみる事にしました。 ...
スポンサーリンク

サイトの概要

かなり抽象的にぼかして書きますが、あるアイテムについてざっくりと基本情報が書いてあるようなページに、そのアイテムを入手したら画像やコメントを投稿してドヤァってやるようなサイトです。

サイトに載せる基本情報は、いくつかのまとまっているサイトからスクレイピングで参照情報として持ってきて、オリジナルに取捨選択してカスタマイズしたものを使用したいと思います。

このサイトが流行るかは難しいと思っていて、そのアイテムを集めている自分と知人が使えるレベルのものだと思っています。

twitter連携はまだ考えていないのですが、連携してtwitterでドヤァって出来た方が拡散しやすく、アイテムを集めている人も楽しめるような気がします。そこは検討中です。

目標・目的など

このサイトはRailsでの最初のアウトプットによる勉強が本当の目的の為、先ずは2017年内に基本開発が終わってリリース出来る事を目標にします。(でもここ書いてる時は12/24なので絶望的すぐる・・)

また、このサイトを作る事によってRailsの一通りがわかるようになりたいです。ですので、なるべくRailに沿った開発っていうやつを目指していきます。自作でごりごり作らずに、公式で用意されたものや、推奨される方式で書いていきたいと思います。

ユーザは増える事を最初から想定していません。でも最低限自分と知人を含め、そこから派生して5人くらい使ってくれたら本望です。「ん」と「う」を取ったらホモです。

それくらいの規模なので、レンタルサーバなど安いところでやろうと思います。

余談ですが・・・

以前CakePHPのサイトを作った際は、ロリポップがPHPに対応している為ロリポップで公開したのですが、Raisだと対応していないようですね・・・。レンタルサーバって基本的にPHPには対応していますがRailsだと対応していないようで、VPSとかになってしまうようです。

言語技術的な新しい取り組みは、Railsに絞っています。gulp、docker、vue.jsなども一緒にやってみたいのですが、一気にやると時間がかかるので、1サイトごとにちょっとずつ新しい取り組みを入れていく予定です。

出来上がったサイトは、今後自分のポートフォリオ的なものにも入れられるようにもしたいです。

開発記録

では、ここからひたすら開発記録をしていきたいと思います。

本来ブログって1記事を1ページにしますが、そうすると凄い短い内容で1ページになり、見づらい&スパムちっくになってちょっと嫌なので、この形式(この開発はこのページだけで完結)でやっていきたいと思います。

また、今回は時間もちゃんと図ってやってみます。皆さんに比べると格段に遅い感じしてますが、頑張っていきますんでよろしくお願いします。

2017/11/20-2017/11/29の開発記録

15時間 計15時間

完全にこの期間は開発時間というより学習時間でした。

Progateという学習サービスでRailsが有料プランですがあり、おすすめと聞いていたので即有料プランにして実践。

一通りRailsのコースを学習、システム的にも凄いのですが、問題が凄い作りこまれていてわかりやすく、身になるものでした。一気にレベルが60になり、やり甲斐・ゲーム性が高いサービスだと思いました。

プログラミング塾のようなサービスが最近では流行っていて魅力的ですが、値段が結構高いので、先ず勉強し始める人にはこのProgateをおすすめしたいです。

CakePHPはRailsの影響を受けているので、CakePHPを今までやっていた自分としてはすんなり入れました。Railsはマイグレーション機能が最初っからあったり非常に便利でやりやすいと実感出来ました。

また、手元に本を持っておきたい派(通勤時の暇つぶしでゲームやるぐらいなら本を読みたい)のでこの本も買いました。Progateではそれほど詳しく触れない箇所や使用しないヘルパーなども載っていて、今のところ結構役立っています。

2017/12/5-2017/12/13の開発記録

12時間 計27時間

既にあるVagrantの仮想環境にRailsの環境構築をしました。

また、簡単なviewを作りました。

2017/12/18-2017/12/22の開発記録

9時間 計36時間

サイトに必要なテーブル設計をしました。簡単なサイトなので12テーブルほどです。

開発時にちょくちょく見たいので、ER図も作りました。今まで業務で開発してきて感じるのですが、良いシステムを作るには常にDBを見直す事が大事だと思っています。また、結構好きな工程でサイトの仕上がりを想像しながら基盤的な箇所を構築するのは、楽しく作業が出来る部分です。

サイトに載せておきたい情報(情報がメインではないサイトですが)をネット上からスクレイピングして持って来たいので、また以前のようにやってみました。

初めてスクレイピングした時の記録

Rubyでのスクレイピング・クローラー開発記録(データベース系サイトのデータ収集用)
データベース系サイト用にデータ収集クローラーを開発してみることにしました。その記録をこちらに記載していきます。 この記事は随時追記して...

スクレイピングに必要になるのは、

  1. 載せたい情報がまとまっているスクレイピング先のサイトを探す
  2. パターンとして取得可能か検討
  3. 開発

というざっくりと言えば3工程です。

前回やった時の環境がそのまま残っていたので、いきなり開発に着手出来ました。そのまま動いた時はHOTしました。(熱

2017/12/24の開発記録

5時間 計41時間

スクレイピングを進めて情報収集を続けました。

Ruby Nokogiriでスクレイピングした際に覚えた事・サンプル
Ruby gem Nokogiriでスクレイピングした際に覚えた事・サンプルを記載しておきます。 勉強まっただ中なので随時追記していき...

これで大分取得出来るようになってきたのですが、どうしても統一されていないサイトのスクレイピングでより抽象的にやる必要があり、上の記事のmechanizeではなくxpathを使用してみる事にしました。xpathを絶賛勉強中です。

2017/12/25-2017/12/28の開発記録

7時間 計48時間

xpathでスクレイピングをしないと取れない箇所があり実践。xpathは以下のChrome拡張ツールを使うと要素をブラウザから指定するだけで、xpathがまるわかり。xpathをやる際には超役立つツールでした。

https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl?hl=ja

色々やってみたので色々なパターンのデータを取得出来るようになってきました。githubにリポジトリも作っているのでノウハウが少しずつ蓄積されてきたような気がします。

データが集まったのでデータ整理・テーブル修正・データ投入を行いました。

railsではデータ投入はseeds.rbに記載してrails db:setupをすれば投入出来るので便利です。

こういったコマンドは随時こっちの記事にまとめていっています。

Rails5 Tips
この記事ではRails5実践の中で覚えた事・メモしたかった事を随時記録していきます。 View favicon <%= favi...

2017/12/29の開発記録

7時間 計55時間

休みに入ったので1日で7時間開発が出来ました。休みと言っても子供の相手や家事をしたりするので、なかなかフルに開発に充てられません。夜な夜な作業しました。

一覧ページにデータを全部表示する箇所を実装しました。

アソシエーションのところでどはまりをしたのですが、なんとかやりたい事は出来ました。

2018/1/1-2018/1/2の開発記録

8時間 計63時間

各アイテムのデフォルト画像の設定、検索フォーム、ページャー、ユーザ登録を実装しました。ユーザ登録はcssの調整とメール送信が残課題です。

引き続きauth関連を進めたいと思います。

難しいと思っていた箇所なのでやっぱりいろいろはまってます・・・。

アウトプット記事

【Ruby on Rails】ユーザ登録の実装手順
Ruby on Rails5 にて ユーザ登録の実装をしたので手順を忘れないように記載しておきます。 usersテーブル テーブルの準備...