Railsエラーノート

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

2015-01-01から1年間の記事一覧

Railsチュートリアルを一通りやってsample_appができました

なんとかかんとかRailsチュートリアルを一通り第11章までやってみた。できたsample_appはこれ。(みんな同じですが・・・) http://cremeshi-sample-app.herokuapp.com/GitHubはこれ。cremeshi/sample_appgithub.com言われたことをその通りのことをそのまま…

relationshipsのデータモデルがよくわからない

Railstutorialの第11章。画像拝借↓ Userモデルとrelationshipsモデルを繋げるのに、なぜ class User ActiveRecord::Base has_many :microposts, dependent: :destroy has_many :relationships, foreign_key: "follower_id", dependent: :destroy . . . end …

herokuでpg:reset DATABASEをした時

Railstutorial第9章。 herokuでpgをリセットした時にでてきた、 エラー?と思ったらどうやら確認らしい。 僕の場合 WARNING: Destructive Action ! This command will affect the app: cremeshi-sample-app ! To proceed, type "cremeshi-sample-app" or re-…

テストのブラウザでcookiesが使えないってどうなんでしょう

Railstutorial第9章まできました。第8章でも登場したcookies.permanentメソッドは実際にテストでは使うことができないらしい。そのために、 テストヘルパーとしてテスト用メソッドを作るって・・・ 結構大変ですな。タイトルタグのところでも出てきたのです…

「||=」のわかりやすい説明

Railstutorialの第8章で、 def current_user remember_token = User.encrypt(cookies[:remember_token]) @current_user ||= User.find_by(remember_token: remember_token) end という記述が出てくる。 これはremember_tokenがあった場合、 @current_userと…

要素代入を扱うメソッド(関数)のcurrent_user=(user)とは

Railstutorial第8章。 ここでRubyの要素代入関数が出てくる。具体的には、 module SessionsHelper def sign_in(user) . . . end def current_user=(user) @current_user = user end end と current_user=(user) 要素を代入できるメソッドが出てくる。 これを…

cookiesは今から20年後に切れる

Railstutorialの第8章。sign_inメソッドの作成のところで、SessionHelperに書く時。 module SessionsHelper def sign_in(user) remember_token = User.new_remember_token cookies.permanent[:remember_token] = remember_token user.update_attribute(:reme…

検証に対するテストで「validする」の意味

Railsチュートリアル第6章の「name属性の検証に対する、失敗するテスト。」で、 describe "when name is not present" do before { @user.name = " " } it { should_not be_valid } end のところで理解に苦しんだというかハマった。 Yasukawa氏のスクリーン…

DB Browser for SQLiteのインストール

便利らしいので後でインストール DB Browser for SQLite

よく使う「Gitのmerge」「githubへのpush」「herokuへのデプロイ」3セット

Railsチュートリアルの作業を行っていてよくある保存の作業。 1.Gitをmastarブランチの切り替えてマージする $ git add . $ git commit -m "作業内容を記入" $ git checkout master $ git merge filling-in-layout 現在のブランチを確認 $ git branch fillin…

なぜRubyのメソッドに「?」がつくのか

booleanの判定のメソッドを作るときは、 class Word def palindrome?(string) string == string.reverse end end これはRailsチュートリアル第4章にでてきたクラスの継承でその中に「palimdrome」というメソッドを作ろうという時のメソッド。palindrome?(str…

なぜRubyのハッシュでシンボルを利用するのか?

例えば、 文字列をキーにしたハッシュの場合、 user = { "first_name" => "Michael", "last_name" => "Hartl" } シンボルをキーにしたハッシュの場合、 user = { :name => "Michael Hartl", :email => "michael@example.com" } ここRailsチュートリアルスク…

LL界とかLL書く人とかの「LL」とは?

Rubyの記事を読んでいたら、 LL界の委員長のpython とかいう言葉が出てきた。LL界ってどのセカイよ! ってことで調べてみたら 軽量プログラミング言語(けいりょうプログラミングげんご、和製英語:lightweight language、LL) っぽいですね。

putにnilが返される意味とは

>> puts "foo" # put string foo => nil このようにputsは変数の値が出力されるけど、 返り値はnilになる。putsの戻り値(return値)は、なし(空)ですよという意味 だそうですが、いまいちピンとこない。

リファクタリングとは?

Railsチュートリアルの第3章からで「リファクタリング」。何それって感じなのですが、 この第3章ではテスト駆動開発が出てきて、 その中で Red Green Refactor というサイクルを行う。 動作を変えずにコードを改善したり、冗長なコードを削除したりすること

git diffからquitする方法

GIt

$ git diff で差を見ていたら元に戻す方法がわからなくなった。答えは簡単で「q」を押せばいいだけ。参考:Git diff - how to quit the diff listingstackoverflow.com

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

Railsチュートリアルでは、 デフォルトで生成される「README.rdoc」を「README.md」によく変更するんだけど、 拡張子を.mdにしておけば、GitHubにアップロードしたときに自動的にドキュメントがきれいに整形されます。 ってどういうことでしょう? そもそもM…

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

Railsチュートリアル、「1.4.1 Herokuのセットアップ」で躓きました。単純に Heroku Toolbelt ここからmac版をダウンロードしてインストールしたのにそのあと、 $ heroku --version を打つと、 rbenv: heroku: command not found The `heroku' command exist…

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

Railsチュートリアルの第1章の「1.3.5ブランチ (branch)、変更 (edit)、 コミット (commit)、マージ (merge)」 1.ブランチ作成 $ git checkout -b modify-README このコマンドはブランチの「新規作成」と「そのブランチへの切り替え」が同時に行われている。…

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

Railsチュートリアルの「1.3.4GitHub」は結構躓いた。 gitでコミットさせたアプリをgithubにはじめてpushするという作業。 Generating SSH keys => GitのSSHキーを作成?? SSHのキーだと!? ってこれはまず公式サイトはここ↓ Generating SSH keys - User D…

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

Railsチュートリアルのスクリーンキャストの解説動画の第1章。Gitによるバージョン管理のところで、 動画解説のYasukawa氏は lv ~/.gitconfig とタイピングしていた。けどMacには「lv」コマンドは無いらしい。要するには.gifconfigの中身を表示されればいい…

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

Railsチュートリアルが4.0.5で それに合わせるために現在入っている4.2.1を削除。ここで、 アンインストールするために インストールがgem install railsだからと言って $ gem uninstall rails ではダメなんです。4.2.1をアンインストールしたい場合は、 $ g…

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/Subli…

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/rail…

rbenvって何?

rbenvってのがよく出てくる。どうやら複数のRubyのバージョンをインストールしてRubyの環境を切り替えるものらしい。 そして読み方は「アールビーエンヴ」って言ってた。 # Rubyバージョンリストを確認する $ rbenv versions # 古いバージョンをアンインスト…