Railsチュートリアル 8章完了まで

Railsチュートリアル、8章まで完了しました

bootstrap先生のパワーもあるとは思いますが、
見た目的にもそれっぽくなってきたような気がします。

ここまでで気付いたところなど。

scaffoldって使わない?

まだ先の章を見ていないのでなんともいえませんが、
scaffoldが登場しないなとふと気づきました。

初心者向けの書籍やサイトを見ていると必ずといっていいほど

  1. rails new
  2. rails g scaffold
  3. Railsの凄さの片鱗を味わえるでしょうどうのこうの

といったパターンが多いと思います。

そういうもんなのだな、と勝手に思っていましたが、
今のところRailsチュートリアルでは出番なしです。

ふと、scaffoldって実務だと使わないのか?という考えにいたり、
調べていると、参考になりそうなエントリがいろいろと。。

RailsのScaffoldは単なるマーケティングツールで実際の開発では使わない? - QA@IT

Rails Q&A「Scaffoldで作成されるテストはそのまま使うべきか?」 - give IT a try



いまのところ
「使わないことはないけど、フル活用するわけではない」
と勝手に解釈しています。

たしかに初めてscaffoldを使ってみたときには、「すげー!』と思いましたが、
勝手にあれだけの量のソースを生成されるのは若干不気味な感じもしました。

個人的には1つずつアクションを作っていくほうが好みかも?

remember_token を追加する箇所が通らない

Userモデルに remember_tokenというカラムを増やすところで、
なんだかうまく追加できない事象に陥って少しハマりました。

結果、以下手順で解決

  1. rails sでサーバを起動している場合、一旦止める
  2. rake db:migrate:reset
  3. rake db:migrate:reset RAILS_ENV=test

ポイントは

  • いちどサーバを止める
  • test環境向けにもmigrateを流す

の2点でした。

普通にやっていれば問題なくいけるのだと思いますが、
私の場合、一度空のmigrationファイルを実行してしまってからおかしくなりました。

上記 remember_token のテストでコケる

8.18、以下テスト実行です

rspec spec/models/user_spec.rb

エラー内容

`method_missing': undefined method `its' for RSpec::ExampleGroups
::User::RememberToken:Class (NoMethodError)

原因

stackoverflow.com

itsメソッドがRspec3.0以降で消滅しているらしい。
expectを利用した形式に書き換えればokだった。

(チュートリアル内にも、"itsはこれと同義だよ!"みたいな記述はある)

ただ、ワンライナーを意識する場合には以下のように置き換えるといいっぽい

it { is_expected.not_to be_blank }

database_cleanerがインストールできない

GemfileにGithubへのURLも記載しているが、いらないっぽい

gem 'database_cleaner', github: 'bmabey/database_cleaner'

gem 'database_cleaner'

8章まで終えて

アプリ固有のモジュールってどこにおけばいいんだ?
というのがいまひとつ解ってなかったのですが、
普通にHelperに書いても良い感じなのですね・・・

viewからの参照用のメソッドのみを定義するものかと思ってたのですが、
普通にcontrollerでincludeして使っていい感じのようです。

(お仕事で利用されている方からしたらどうなのでしょう?)

とはいえ、大きいモジュールになってくると
なんでもかんでもHelperにいれてたら大変なことになりそう。

concernを使う?lib配下に置くのか?

課題として覚えておこう・・・

cmderをWindows7(64bit)に入れてみたメモ

Windows環境でRailsチュートリアルを進める中で、
Macとどうしても比較してしまうのが、ターミナルの使い勝手

基本的にgit bashを利用して全て作業していたのですが、
これを機に調べてみたところ、cmderというのがいい感じっぽい

cmder | Console Emulator

というわけで導入してみたのでメモ

インストール

zip落としてきて解凍して終了

api-ms-win-appmodel-runtime-l1-1-0.dllでエラー

Visual C++ runtime をインストール http://www.microsoft.com/ja-jp/download/confirmation.aspx?id=48145

GitBashにしたい

  1. settings
  2. Startup/Tasks > "Add default tasks..." > yes
  3. なんか色々読み込まれる
  4. settingsを閉じて、new console
  5. create new console から git bash 的なやつを選択
  6. 開ければok

その他設定

  • Main > fontはConsolasのSize15に設定
  • Main > Monospaceのチェック解除(外さないと日本語入力時にズレる)
  • Main/Size & Pos > Auto save window size and position on exit にチェック → 終了時のウィンドウサイズなどを保存
  • Startup > Autosave/restore opened tabs にチェック → 終了時状態を保存
  • Features/Colors > SchemesをMonokaiに設定 (cool)
  • Features/Transparency > Alpha transparency でいい感じに背景透過

日本語化ける

完璧にする方法は無さげ。とりあえずlsで化けなくする

  • lsの出力結果を改善

~/.bash_profileを編集

alias ls='ls --show-control-chars'

~/.vimrcを編集

以下を追加

set encoding=cp932
set termencoding=cp932
set fileencoding=utf-8
set fileencodings=utf-8,cp932

残課題

なんかvimでバックスペースが効かなくなった! (Shift押しながらだと効く)

SublimeText使うから別にいいし、と自分に言い訳して現実逃避中


というわけで、上記設定したらこんな感じに

f:id:mugi1:20150822002017p:plain

ちょっと半透明なのがcool そして普通に使いやすい。

これで引き続きRailsチュートリアルがんばろう

(しれっと6章までおわりました)

Railsチュートリアル 3章完了まで

railstutorial.jp

珍しくあまり仕事が忙しくないため、会社でこっそりRailsチュートリアルを進めています。

なんでRailsなの?というところもありますが、
おもに以下のような理由です。

  • 社内ではJava(Spring/JavaEE/Play)を主に使うので、ちょっとまったく違うものを学びたくなった
  • 個人的にはjavascriptが好きなので、スクリプト言語で攻めたかった
  • なんかcoolな気がしたから(妄想と偏見)

本を買ったりして独学で適当にやってはいたのですが、
実際に「何かつくろう!!』となると、どうしても手が止まってしまいます。

これは基礎ができていないからだな、という考えに至ったので、
とりあえずはチュートリアルを全部やってみることにしました。

現状の進捗としては3章完了まで。 ここまではわりとすぐ終わりましたが。。。

Windows環境だといろいろめんどい

以下環境で行いました。

チュートリアル内に「バージョンあわせたほうがいいよ」とあるのに
完全に無視して進める私もどうかと思いますが、
バージョン差異よりも、Windowsにはめられることが多いです。

特に以下

  • sqlite3でエラー
  • tzinfo-data でエラー

調べると色々でてきますが、
解決策としては以下

springが動かない

もはやチュートリアルの内容ではないのですが、
3章の中でSporkに関する説明が出てきます。

私は頭がおかしいので

とかいって世の中では違うのがメジャーなんじゃないの?

という発想にいたり、調べたところどうやら主流は spring だそうです。
どうしてもjavaフレームワークが頭をよぎりますが、
チュートリアルから脱線して、このspringを入れてみることにしました。

  • Gemfile
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
  gem "spring-commands-rspec"
gem install spring
spring binstub --all

いざ!

spring status
rails g
spring status

・・・・動かない!

色々がんばってみましたがまったくダメでした。

えー、設定が悪いのか?gemが何か足りないのか?
とか色々考えたのですが、
そもそもwindowsでは動かない ということでした。

帰ってからmacで試したら一瞬で動きました。

Windowsの場合は仮想を使ったほうが色々困らないのかもしれませんね。 設定がめんどいですが。。

つづけて4章以降も進めていこうかと思います。

今使えるスキルをふりかえる

新卒から入って、プログラマとして気づけば7年目。。。

スキルの棚卸をしてみる

language

  • Java
    主にwebシステム構築。メインで利用してます。
    たまにバッチ処理などを組むこともありました

  • Javascript
    とあるプロジェクトで、丸1年間jsでのコーディングをし続けていました。 典型的なデスマーチでしたが、おかげで「え、js?コピペして使うやつでしょ?」からは脱却しました。

  • HTML

  • CSS
    上記jsと同時期にゴリゴリに組んでいました。
    CSSについては、デザインを組むというより、
    jQueryアニメーションで重い部分を置き換えるために利用したり。。

  • PL/SQL
    ORACLE手続き型言語です。
    ORACLEのwebtoolkitというものがこの世には存在しており、
    それをフルに利用したwebシステム開発時に利用していました。
    かなり変態的なことを多用しないと作れないのでとても大変。。。

  • Ruby
    趣味。たのしい

framework/library

  • Spring Framework すごい使いやすかった。なんというか、フレームワークがやりすぎてない感じが。

  • Play! Railsを趣味でやっていてその概念的な部分は理解しているつもりだったので、
    私は比較的すんなり受け入れることができました。

    が、やはりちょっと初心者にはハードルが高いような気がしました。

  • jQuery

  • jQuery-mobile 1年間一緒に戦いました。jQueryでメジャーなメソッドは大体いけるようになりました。

  • Angularjs 単体で利用していたわけではなく、ApacheCordovaを利用したハイブリッドアプリ開発時に利用しました。

  • Ruby on Rails
    趣味。たのしい(重要)

ミドルウェア

その他

こうやってみてみると、いろいろできるようになったような気もしますが、まだまだですね。

現在はRuby on Railsを利用して個人でのwebサービス提供を目指して日々開発中です。

自分の知識整理も含めて更新していく予定ですので、よろしくお願いします。