コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

社会のボトムズがRailsに手を出す #1

これまでのあらすじ

アストラギウス銀河を二分するギルガメスとバララントの陣営は互いに軍を形成し、もはや開戦の理由など誰もわからなくなった銀河規模の戦争を100年間継続していた。その“百年戦争”の末期、ギルガメス軍の一兵士だった主人公「キリコ・キュービィー」は、味方の基地を強襲するという不可解な作戦に参加させられる。作戦中、キリコは「素体」と呼ばれるギルガメス軍最高機密を目にしたため軍から追われる身となり、町から町へ、星から星へと幾多の「戦場」を放浪する。その逃走と戦いの中で、陰謀の闇を突きとめ、やがては自身の出生に関わる更なる謎の核心に迫っていく。


はい、そうしたわけで僕が応援したりしなかったりしている方がRailsチュートリアルとかしていたんで僕もはじめて見ることにしました。その昔僕もセットアップだけしてたんですけど特に作りたいものなかったから手を出してなかったんですよね。ただ、以前触っていた時よりもバージョン上がってるから知識アップデートしていかないといけないのよね。たしか前回記事Rails4で確認していた気がする。まあ、丁度いい機会だと思ったのでやることにしました。

前回記事
inujini.hatenablog.com

そうしたわけでサクッと導入だけしていきます。

$ gem install rails
$ rails new 【プロジェクト名】
$ rails server

とりま確認用にサーバ起動したら早速エラー出たんですけど、Windowsはだめだなぁ。

cannot load such file -- sqlite3/sqlite3_native (LoadError)

2.5用の「sqlite3_native.so」がないから作れってことらしい、そう(無関心)。


SQLite Download Page
対策としては上記リンクからソースコードsqlite-amalgamation-******.zip」、DLL「sqlite-dll-********.zip」を用意してやって「sqlite3.dll」をRubyのbinにコピーして以下コマンドを叩いて.soファイルつくってやる必要があるっぽい。面倒くさい。

gem install sqlite3 --platform=ruby -- --with-sqlite3-include=C:/sqlite-amalgamation-**** --with-sqlite3-lib=C:\ruby25/bin

パスはお使いの環境に合わせてということで。そんでこれでできた.soファイルを「C:\\ruby25\lib\ruby\gems\2.5.0\gems\sqlite3-****-x64-mingw32\2.5」にねじ込むといけるとのこと。

そうして再度rails serverすることでようやく例の画面が表示できました。面倒くさい……。
f:id:andron:20190103131057p:plain
バージョン情報は表示されている通りです。一応今の最新の環境だと思う。


第一章をはじめるよ

■ 最初のアプリケーション
さて雑に導入の確認もできましたので、さっそくチュートリアルを見ていきます。チュートリアルだとCloud9使うとか書いてあるけど先ほどWindows環境で導入したのでそこの話は無視します。

まずはRailsとは何かとかそういうのについての話です。まあ、フレームワークっての分かってるんで飛ばします。ちなみに僕の好きなフレームワークSinatraです(隙あらば自分語り)。そういえばじっくりチュートリアルの中身を見たことなかったんですけど、演習とかついてたんですね。

演習 1.
Rubyのバージョン: 2.5.3
ruby -v

演習 2.
Railsのバージョン: 5.2.2
rails -v

てな感じの演習です。まあ最初なんで特につまづくことはない。



Hello Worldをつくる!!
導入にめちゃくちゃ手間取ってしまったんですけど、ようやくアプリケーションの中身をいじる準備ができたので先ほど表示された画面を改変していきます。

f:id:andron:20190103145943p:plainf:id:andron:20190103145952p:plain
先ほどの表示されている部分をハロワに変更するとこんな感じになります。演習にスペイン語でハロワ書けとかグバーイにしろとかいろいろあったので追加した結果ルートルーティング以外もいぢることになってしまった。ランダムでルートルーティング変更するみたいに書き換えるほうがよかったのかね。まあいいや。

以下クソース

# app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
    def hello
        html = <<-EOS
          <h1>hello, world!<h1>
          <h1>¡Hola, mundo!</h1>
          <a href="./goodbye">Good bye</a>
        EOS
        render html: html.html_safe
    end

    def goodbye
        render html: "goodbye, world!"
    end
end
# config/routes.rb
ails.application.routes.draw do
  root 'application#hello'
  get '/goodbye', to: 'application#goodbye'
end

.html_safe使ってやらないとエスケープされるってことをついさっき知った。書いてないものを実装しようとすると色々と発見がある。


第一章はそんな感じです。他にもGitを使おうとかHerokuの設定をしようとかあるけどもそっちは必要になってからでということで省略します。Rails関係ないですしね。最終章終えたときに丸パクリクソアプリにならなければHeroku使うなどを検討しようと思います。それまではいいや。


第一章の感想

チュートリアル通りにやってない……。まあできることは大体そんな感じです。とりあえず最初の方だからあんまり学びとしての収穫はなかったけども、この煽り力満載の謎ツールを発見できたのはいい収穫でした。
LMGTFY

「GemはどのWebサイトにありますか?」とか言ってこんな風にこのリンク張られたら僕は多分キレると思う。本文中にはググりましょうとか丁寧に書いてあるけど、実質いってることググレカスですよコレ。
LMGTFY
まあ、なんやかんや言っても使う機会があったら僕も多分使う。みんなも使おう!!




感想としてはそんな感じです。次回は「Toyアプリケーション」をつくるらしいです。よーしがんばるぞー。

なお、次回更新日は未定です。