Ruby
エラー
バグ
入門

Rubyでのハマりポイント

More than 5 years have passed since last update.

俺的ハマリポイントをつらつらと記録していきます。

ハマり次第追記していきます。

適宜ツッコミをよろしくお願いいたします!



invalid multibyte char (US-ASCII) (SyntaxError)

これは、ソースファイルに日本語が含まれる場合のエラー。

該当ソースファイルの先頭に以下のおまじないを追加

# -*- coding: utf-8 -*-

Ruby 1.9上のRailsでinvalid multibyte char (US-ASCII)の対処



odd number list for Hash (SyntaxError)

このエラーがSyntaxエラーが原因じゃないときは、Rubyのバージョンを疑った方がいい。

これからRubyを始めるためにやったことメモ3(miからRubyの最新版が呼べない)

$ rvm use 1.9.2 --default

1.8.xの時にエラーが出てた。なので新しいバージョンにセットしてやる。(なぜか戻っちゃうことがあるんだけどなぜ?)



NameError - uninitialized constant Object::Something

これは、Rubyの規則があるらしくって、「モデルの名前は単数系にするべきだという、Railsの規約を守っていなかっただけ」で出るらしい。先頭大文字にしてもダメだった。Ruby奥深いよRuby。

Railsメモ:多対多の関連を利用したときにNameError: uninitialized constant



syntax error, unexpected tIDENTIFIER, expecting keyword_end (SyntaxError)

コメントアウトを間違えて // にしたら出た。 # にしたら直った。

他の言語に慣れた人がRubyを使ったときにつまずきがちな点



blockとかProcとかlambdaとかなによ

Rubyのblock、Proc、lambdaを理解する



データの永続化が出来ない

HerokuでRubyしてみてわかったこと



no such file to load -- config (LoadError)

13:18:40 web.1  | web.rb:3:in `require': no such file to load -- config (LoadError)

パスを明示化しないといけない。この場合だと、

$ require 'config'

$ require './config'



なんかよくわからんとこでLoadErrorとかでる

rubyのバージョンが古い可能性なので新しくする。

$ ruby --version

ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-darwin10]

$ rvm use 1.9.2 --default

--defaultオプションをつけるとデフォルトでそのバージョンになる。



heroku 参考集



bundle install 関連

$ bundle install

Resolving dependencies...
Your Gemfile has no remote sources. If you need gems that are not already on
your machine, add a line like this to your Gemfile:
source 'https://rubygems.org'
Could not find gem 'capistrano (>= 0) ruby' in the gems available on this machine.

bundle installCould not find gemと怒られたら、

Gemfileの先頭に下記を追加。

source 'https://rubygems.org'