Help us understand the problem. What is going on with this article?

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'
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away