Railsエラーノート

ゼロからWebサービスを作るRuby on Rails学習ブログ

railsアプリケーションのREADME.rdocをREADME.mdにする理由って?

Railsチュートリアルでは、
デフォルトで生成される「README.rdoc」を「README.md」によく変更するんだけど、

拡張子を.mdにしておけば、GitHubにアップロードしたときに自動的にドキュメントがきれいに整形されます。

ってどういうことでしょう?
そもそもMarkDownというのは何でしょう?
はてなにもMarkDownってありますが・・・

ちなみにコマンドはGitに付属するmvコマンドで

$ git mv README.rdoc README.md

heroku toolbeltでmacに上手くインストールできない時

Railsチュートリアル、「1.4.1 Herokuのセットアップ」で躓きました。

単純に
Heroku Toolbelt
ここからmac版をダウンロードしてインストールしたのにそのあと、

$ heroku --version

を打つと、

rbenv: heroku: command not found

The `heroku' command exists in these Ruby versions:
  1.9.3-p194

とhetokuコマンドが使えない?

調べてみると、

"rbenvを使っていて、他のrubyのバージョンでもheroku gemを使っていた場合は"
このような表示がでると。

なので、

Railsチュートリアルでやりたいのはruby 2.0.0だからこの1.9.3-p194のherokuはアンインストールする必要があると。

そういえば以前の学習時に1.9.3ぐらいでherokuを一度使っていたからそれがインストールされていたんだ・・・。

ってことで

表示されていたそれぞれのRubyのバージョンでgen uninnstallをする

$ rbenv shell 1.9.3-p194
$ gem uninstall heroku

この状態でもう1度heroku toolbeltをインストールしてみる。
そうしてターミナルを再起動する。

もう1回、

$ heroku --version

すると

Your version of git is 1.7.10.2. Which has serious security vulnerabilities.
More information here: https://blog.heroku.com/archives/2014/12/23/update_your_git_clients_on_windows_and_os_x
heroku-toolbelt/3.37.0 (x86_64-darwin10.8.0) ruby/1.9.3
You have no installed plugins.
updating Heroku CLI...done. Updated to 3.37.1

となるけど、

「heroku-toolbelt/3.37.1 (x86_64-darwin10.8.0) ruby/1.9.3」
古い方に入ってないかこれ!?

でも同じようにこれを見るとgithub.com
グローバルバージョンが2.0.0でもこれでいいみたいなこと書いてる。
特に互換性があるわけではないみたいなのでこれでいいのかな?

heroku toolbeltのアンインストール

$ rm -rf /usr/local/heroku
$ rm -rf ~/.heroku

Gitのブランチ機能の基礎の基礎

Railsチュートリアルの第1章の「1.3.5ブランチ (branch)、変更 (edit)、 コミット (commit)、マージ (merge)」

1.ブランチ作成

$ git checkout -b modify-README

このコマンドはブランチの「新規作成」と「そのブランチへの切り替え」が同時に行われている。

もし別々に打つと。

$ git branch modify-README

で新規作成

$ git checkout modify-README

でブランチの切り替え。

2.変更作業

今回はREADMEファイルの書き換えと拡張子の変更。

$ git mv README.rdoc README.md

これは

$ mv README.rdoc README.md

としても同じこと。

詳細はスクリーンキャストで解説されていた。
またはqiita.com
こちらの方が細かく検証していただいています。

3.ブランチの確認

READMEファイルの変更が終わったらブランチの状態を確認する。

$ git status

そうすると、

# On branch modify-README
# Changes to be committed:
#   (use "git reset HEAD ..." to unstage)
#
#       renamed:    README.rdoc -> README.md
#
# Changed but not updated:
#   (use "git add ..." to update what will be committed)
#   (use "git checkout -- ..." to discard changes in working directory)
#
#       modified:   README.md
#

こんな感じでmodifiedと編集されたのがわかります。

4.コミット

$ git commit -a -m "Improve the README file"

こうすると

$ git add -A

$ git add -m "Improve the README file"

を一緒にまとめてすることができる。

5.マージ(merge)

$ git checkout master

マスターブランチの方にいく。


*1

そして、次に合流させてあげる(マージしてあげる)。

$ git merge modify-README

git merge のあとにマージする対象のブランチを選ぶ。

*1:(注意)この時点では、 「master」ブランチではREADMEは変更が加えられていないが、 「modify-README」ブランチではREADMEはもちろん変更されている状態。

githubの公開鍵設定での躓き記録

Railsチュートリアルの「1.3.4GitHub」は結構躓いた。
gitでコミットさせたアプリをgithubにはじめてpushするという作業。

Generating SSH keys => GitのSSHキーを作成??

SSHのキーだと!?
ってこれはまず公式サイトはここ↓
Generating SSH keys - User Documentation

実際日本語版で見て作業をしたのはここ↓
Git - SSH 公開鍵の作成

もっともわかりやすかった解説

monsat.hatenablog.com

こちらは本当に助かりました。ありがとうございます。

躓く場所1

SSHで試しに繋げてみるとこんな感じのエラーっぽいのが出た。

Warning: Permanently added the RSA host key for IP address '192.XX.XXX.XXX' to the list of known hosts.
Hi cremeshi! You've successfully authenticated, but GitHub does not provide shell access.

この「Warning」はなんじゃい?ってことで、調べていたんですが、どうやらここは気にする必要はないみたいです。

「 Hi cremeshi! You've successfully authenticated, but GitHub does not provide shell access.」というのが出ればSSHで開通ってことで!

躓く場所2

ここが一番躓いたのですが、接続に成功したのにもかかわらず、

git push -u origin master

でアプリケーションをpushしようとするとgithubの名前とパスワードを聞かれる。
いやいや、それをカットするためにわざわざ秘密鍵ってのと公開鍵っての作ったのに!
ここで何度やってもダメ。

ちなみにRailsチュートリアルには、

git remote add origin https://github.com//first_app.git

このように書いてあるのですが、実際httpじゃなくてSSHの方を選ばないといけないので、

git@github.com:/first_app.git

こっちなんだよね。

あーこれに1時間かかった。

ちなみに

git remote -v

で具体的なURLを確認すことができる。

実際はこんな感じ。

origin	git@github.com:cremeshi/first_app.git (fetch)
origin	git@github.com:cremeshi/first_app.git (push)

fetchの方でとってくる場所。pushはローカルの置き場所の方。基本的にURLは同じになる。

macでファイルの中身を表示させる方法がわからない「lv」コマンドインストール?

Railsチュートリアルのスクリーンキャストの解説動画の第1章。

Gitによるバージョン管理のところで、
動画解説のYasukawa氏は

lv ~/.gitconfig

とタイピングしていた。

けどMacには「lv」コマンドは無いらしい。

要するには.gifconfigの中身を表示されればいいのだけど、
その代替案もわからない。

結局ホームディレクトリに戻って、

open .gitconfig

と打ってテキストエディタで表示させた。

追記:もしかしたら!

もしかしたら

$ cat

コマンドでファイルの中身を表示させられるかも。

最新のRailsのバージョンを削除して古い方にしたい時

Railsチュートリアルが4.0.5で
それに合わせるために現在入っている4.2.1を削除。

ここで、
アンインストールするために
インストールがgem install railsだからと言って

$ gem uninstall rails

ではダメなんです。

4.2.1をアンインストールしたい場合は、

$ gem uninstall railties -v '4.2.1'

これで

$ rails -v

で確認すると
Rails 4.0.5」
返ってきます。

rubyバージョンのPって何よ?

rubyのバージョンでよく

2.0.0-p353

の「p」ってみかけるけど、
これは「パッチレベル」と言らしい。

「バージョン2.0でやってください」
と言われたらパッチレベルはどれでもOKだということ。

ターミナルからSublime textを起動させる方法

Mac OS XでターミナルからSublime textを起動させる方法。
とりあえずここ見たら大丈夫。

Mac OSX でターミナルから subl コマンドで Sublime Text を起動する方法 [Sublime Text 3 の参考書(実践編)Wiki]

設定は簡単で、

sudo ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /bin/subl

このあと

subl -h

を実行してsublのヘルプが表示されればOK!
これでも使うのか?

rails sで「/bin/rails:6: warning: previous definition of APP_PATH was here」エラー

ある日、ターミナルで「rails s」するとWEBrickが起動しない現象。

エラーを診てみると、

warning: previous definition of APP_PATH was here

何パスが違うの?

よくわからずに検索していると、
同じ現象が出ている人を見つけました。

参考:
[Error] bin/rails:6: warning: already initialized constant APP_PATH [rails]tic40.hatenablog.com

非常にたすかりました。

で、同じように

rake rails:update:bin

と打ち込む。

すると

Symbol not found: _SSLv2_client_method

が見つかりませんと。

今度は同じ現象のこの方を参考に。manabiblog10.hateblo.jp

なるほど。

Rubyを一度消して再インストールすれば解決するそうだ

その解決方法はここに。qiita.com

でrbenvのuninstallから。
rbenvは何?っていう疑問ももともとありつつ。

解決までの経由を以下にメモ。

$ rbenv versionsでバージョンの確認

$ rbenv uninstall 2.0.0-p353でアンインストール

ここで「rbenv: remove /Users/name/.rbenv/versions/2.0.0-p353?」
とハテナが出てきてハテナ?

どやら「y/N」のヤツみたいで最初ずっとenterしてた・・・。
ここは「y」を選びます。

$ rbenv install 2.0.0-p353で再インストール

ぶわーッといっぱいインストールされているのがわかります。

$ gem install bundler これインストール

次に$ bundle install 

ぶわーッといっぱいインストール。
スーパーに行って帰ってこれるぐらい時間かかる。

$ rbenv rehash

このリハッシュはよくわかりません・・・

最後に

rails s

で無事サーバーが起動しました。

めでたしです。
上記で紹介した方ありがとうございました。

rbenvって何?

rbenvってのがよく出てくる。

どうやら複数RubyのバージョンをインストールしてRubyの環境を切り替えるものらしい。
そして読み方は「アールビーエンヴ」って言ってた。

# Rubyバージョンリストを確認する

$ rbenv versions

# 古いバージョンをアンインストール

$ rbenv uninstall 2.0.0-p353

# 必要なRubyバージョンをインストールする

$ rbenv install 2.0.0-p353

# デフォルトで使用するRubyのバージョンを指定

$ rbenv global 2.0.0-p353

↓このリハッシュするの意味がわからない。
$ rbenv rehash

追記

# インストール可能なRubyのリストを表示

$ rbenv install

または

$ rbenv install --list