【Ruby on Rails】初めてのWebアプリを作ってみた

チュートリアルを真似てみた

まずはRuby on Railsのチュートリアルを真似る。

がいいのだけど、表示をするだけのページなんだよね。

スクレイピング

先月Rubyで作ったスクレイピングの登録内容の表示をRuby on Railsでするって言うのが課題。

チュートリアルのまず

AWSはそのままでいいとしてRails newを実行。

rails 5.1.4 new scraping_app

で、どうする?

構成としては、トップページでスクレイピングの検索をして登録して表示ってことで、2画面構成。

まずは・・・表示画面から作ることに。

その前に・・・チュートリアルのGemfileをコピペして

bundle install

でもね。チュートリアルの1章見ながらやってるのに、Gemfileは最終型なわけで。実はうまくいかない。

なぜなら既に

group :production do
 gem 'pg', '0.20.0'
end

入れてるし。

ってことで

bundle install --without production

にする。

2章を見て作ったほうがいいのかもしれない。

Bitbucketにscraping_appでリポジトリを作る。

git init git add -A git commit -m "Initialize repojitory"

リモートリポジトリにプッシュ!!

git remote add origin git@bitbucket.org:/scraping_app.git
git push -u origin -all

この状態でブランチを作成しました。

Herokuをこの場で設定した方が良かったのか・・・

のちのち大変な悲劇に見舞われました。

git branch -b XXXX

XXXXを個人で作成するときにはどうするだろう?

仕事でする場合はチケット番号とかにすると思うんですけどね。

で、私は日付にしました。

まずしたこと。

表示画面用のコントローラを生成しました。

rails generate controller scrape_page

viewsのscrape_pagesに表示用のページを追加。

views/scrape_pages/reading.html.erb

この状態で多分、routes.rbに追加。

Rails.application.routes.draw do
root 'scrape_pages#home'
get '/reading', to: 'scrape_pages#reading'
end

ってことで。

htmlを作り込みましょう。

home.html.erb

<% provide(:title, "Home") %>
<h1>タグ検索</h1>


reading.html.erb

<% provide(:title, "Reading") %>
<h1>プロフィール情報</h1>

ってことで。この部分までで次はコントローラ確認。

class ScrapePagesController < ApplicationController
 def home
 end
   def reading
 end
end

ここはこんな感じで。

まずはタイトル表示のテストを書いてみた。この辺はチュートリアルの3章の静的ページの調整のまま。

require 'test_helper'

class ScrapePagesControllerTest < ActionDispatch::IntegrationTest

 def setup
  @base_title = "Scraping App"
 end
 

 test "should get home" do
  get root_path
  assert_response :success
  assert_select "title", "Home | #{@base_title}"
 end

 test "should get reading" do
  get reading_path
  assert_response :success
  assert_select "title", "Reading | #{@base_title}"
 end
end

まずはここまででいっかなって感じで一度コミットすることに。

git add -A
git commit -m "first commit"

マスターにブランチを変更

git checkout master
git merge XXXX

ここでローカルサーバーで確認して終わりではないね・・・

git push

のタイミングってどんな感じなんだろう?

ここでしてみたけど。