8/17

  • get 'users/:user_id'というルーティングは「HTTPメソッドGetで、users/〇〇にアクセスした時に{"user_id"=>"〇〇"}というハッシュを生成する
  • link_toメソッドは、HTTPメソッドを書かないと、デフォルトで指定されたHTTPメソッドGETが適用される
  • No route matches→「Viewファイルで記述したルーティング」と「routes.rbに記述したルーティング」が一致していない
  • bundle exec は2つ以上のrailsアプリケーションを同じバージョンのRubyを利用して作成している際に必要となるコマンド
  • f:id:naegi82:20180817133317p:plain
  • 同じバージョンのRubyを使っていると、どのバージョンのgemをインストールすればいいかわからないので、bundle execコマンドを打つことで、bundle、appごとに定義してあるGemfileを参照できるようになる。
  • bundle exec is a Bundler command to execute a script in the context of the current bundle (the one from your directory's Gemfile). execute;  実行する
  • rails ~やrake ~というコマンドを実行する際は、必ず接頭にbundle execという文字をつける

  • Mechanize::page は、Mechanize というモジュールの中に定義してあるメソッドをpageというオブジェクトでも使えるよっていう意味。オブジェクト思考
  • f:id:naegi82:20180817145546p:plain

  • :: は、自然言語でいうと ”の” に当たる→  namespace
  • Rubyにおけるスコープのおはなし

  • Mechanize::Pageは、Pageというただの定数ではないく、あのMechanize クラスから生まれた変数だよって伝えたいから :: を使っている。名前空間。名前の住み分けができるように、( :: ) of で unique にしてあげれる。
  •  Sequel Proのようなデータベースを操作できるアプリケーションを使うとそのアプリケーションからカラムの追加や削除ができるが、アプリケーションから操作してしまうと複数人で開発している場合、開発者ごとにデータベースのテーブル構造が異なるという問題が起こる。そのため、テーブル構造を変えるときは必ずマイグレーションファイルを作成し、マイグレーションを実行することでテーブル構造を操作する。