LoginSignup
0
0

More than 3 years have passed since last update.

Day002 webエンジニアへの道 - Ruby on Railsの基礎を学ぶ -

Last updated at Posted at 2019-05-03

こんにちは。
webエンジニアを目指すtomoです。

エンジニアの勉強をしている日々の学びをQiitaに記録しています。

私自身の頭の整理と今後迷った時のリファレンスも兼ねて書き連ねていきますが、同じようにエンジニア転職を考えている方の参考にもなればと考えています。
また、「ここ間違ってる!こっちが正しい!」といったご指摘もあれば頂けると嬉しいです🙏


前回は仮想マシンの環境設定を行いました。

しかし、実際にRuby on railsを使い始めたところ必要な関連ソフトが足りずエラーが連発しました。

必要な関連ソフトは何かなどちゃんと把握した上で進めたいのですが、それでは時間がいくらあっても足りなさそうなので、関連ソフトの理解は後にしてまずはdot-installのレッスン通りCentOS6を用いた環境で学習を進めることにします。

また、ひとつひとつのコードを全て書き写しているとキリがないので、学習を進める中で調べたことやエラー対応したことに絞って記述していきます。

railsサーバの起動

commandline
rails server -b [ipアドレス] -d

-b オプションでバインドするipアドレスを指定。
-d オプションでデーモンとしてサーバを起動。
デーモンとはメモリ上に常駐し、いつでも処理できるよう待機するプログラムのこと。

[参考]
railsコマンド(rails)
デーモン (daemon)

rails(5.1.4)以降ではリンク先が表示されないため、ブラウザに直接http://[ipアドレス]:3000と入力して動作確認する。

scaffoldで作成したファイルを削除する

commandline
rails destroy scaffold [name]

[name]は削除したいscaffoldの名前。
rails g scaffold [name]で要素を間違えて指定した時に有用

[参考]
scaffoldで作成したファイルを全削除

Modelの作成

rails g model Post title:string body:text

Post → Modelは個々のデータ構造を定義するので単数形で指定する。
string → 1行テキスト
text → 複数行のテキスト

追加した変更が反映されない時の対応

Transmit5を利用して仮想マシンとのファイル転送を行っていたが、エディタで保存したはずの変更がブラウザに反映されなかった。

原因:Transmitとの接続が途中で切れていたため。(Transmit上で「サーバから切断」を行うと、再接続しても既に開いているエディタのファイルとのリンクが切れてしまう)

tips:ブラウザまたはコンソール上で見える簡単な変更(htmlの文章やplaceholderなど)を加えてみると、どこに不具合があるか特定しやすい。目で見て確認しづらい処理の不具合をチェックする場合は処理の内容を簡素化(文字列の出力など)すると特定しやすい。

★メモ

*後日調べること & 気づいたこと
  • kill -9 [プロセス番号] → killコマンドで-9以外の場合どうなる?
  • Convention over Configuration → どのファイルがどこのディレクトリにあるか、指定は単数形か複数形かといった細かいルールがrailsには設定されている。ということらしいので調べる。
  • Active Recordとは何か?
  • MVCのフローを理解するため整理して図に書き出す。
  • 開発環境構築が始めの1歩だと思っていたが、「どのパッケージをどのバージョンで入れるか」というのは難易度が高いので詳しくは後で学んだ方が良い...

さいごに

2日目にして完全に自分用の学習メモと化してきました...

続けていった後で、「うわ、このとき自分はこんな簡単なことで悩んでたのかよ...」ってなれるよう精進します。


twitterもやっているので、宜しければフォローお願いします!
@tomo_tech_

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0