ActiveRecord#Base.includes
pry(main)> @books = Book.includes(:bookmarks, :reviews).order('updated_at DESC') Book Load (3.2ms) SELECT "books".* FROM "books" ORDER BY updated_at DESC Bookmark Load (4.9ms) SELECT "bookmarks".* FROM "bookmarks" WHERE "bookmarks"."book_id" IN (3, 2) Review Load (0.2ms) SELECT "reviews".* FROM "reviews" WHERE "reviews"."book_id" IN (3, 2)
@books.to_sql => "SELECT \"books\".* FROM \"books\" ORDER BY updated_at DESC"
?
request_referer
perfect_ruby 15章
p548
poti:todo user1$ be irb irb(main):001:0> require "todo" => true irb(main):002:0> cmd = Todo::Command.new => #<Todo::Command:0x007fbad7b10cf8> irb(main):003:0> cmd.execute => nil irb(main):004:0> cmd.create_task("create_name", "create_content") TypeError: Cannot visit Integer from /Users/user1/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/arel-3.0.3/lib/arel/visitors/visitor.rb:25:in `rescue in visit' from /Users/user1/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/arel-3.0.3/lib/arel/visitors/visitor.rb:19:in `visit' from /Users/user1/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/arel-3.0.3/lib/arel/visitors/to_sql.rb:241:in `visit_Arel_Nodes_Limit' from /Us... irb(main):005:0> Todo::Task.all => [#<Todo::Task id: 6, name: "create_name", content: "create_content", status: 0, created_at: "2017-02-07 00:30:44", updated_at: "2017-02-07 00:30:44">] #データ自体はできてる
データ自体はできてるからって無視してたら無理が出た.
(変数に格納できないとか…)
結果から書くとrubyのversonを
2.4.0 -> 2.0.0-p195
へ下げて解決.
写経時はversion合わせないと偉い目に合う。ことを学びました.
しくしく
ローカル環境でrails s がとおらないよお><
cloud9が面倒くさい($rails s -b $IP -p $PORTとか。)っていうかsublimeが便利。
なのでローカルで学習することにする
rails s が通らない問題。
cloud9と同様の手順でrails new => gem install => rails s
% rubocop --auto-gen-config /Users/user1/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rubygems/dependency.rb:315:in `to_specs': Could not find 'rubocop' (>= 0.a) among 9 total gem(s) (Gem::LoadError) Checked in 'GEM_PATH=/Users/user1/.gem/ruby/2.2.0:/Users/user1/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0', execute `gem env` for more information from /Users/user1/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rubygems/dependency.rb:324:in `to_spec' from /Users/user1/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rubygems/core_ext/kernel_gem.rb:64:in `gem' from /usr/local/bin/rubocop:22:in `<main>'
ん??通らない。
cloud9では通ってたのになんでえ( ˘•ω•˘ ).。oஇ
てゆか検索対象のgemが9しかないし,pathがおかしい。
どーやらglobalなgemを見に行ってるらしい。
(rubyでgem周りを勉強しないと。てゆかパーフェクトrubyを読破しなきゃ)
てことで。
ここ
の手順通りにローカルで環境構築。
よおしこれで鯖立つはずううう!
Sorry, you can't use byebug without Readline. To solve this, you need to rebuild Ruby with Readline support.
なんでえ( ˘•ω•˘ ).。oஇ( ˘•ω•˘ ).。oஇ( ˘•ω•˘ ).。oஇ
ぐぐった
単純にbyebugに必要なgem入ってなかっただけだった。
てことで三度目の正直、bundle exec rails s。
わあい。
しかし時間かかりすぎたなーあー。
解決してくのは楽しいんだけどあんまり時間がないのだ。
追記。
Q,上記手順の後にrubocop動かそうとしたらrakeが怒ってるって怒られた。
bundle installし直したら解決した。
追追記。
Q,rubocop.ymlてどこにおくの? A,プロジェクトのルートディレクトリ(いちばんうえ)
Q,rubocopで ファイル数 > 10000読みに行ってる。
AllCops: Exclude: - vendor/**/*
vendorを監視対象から外す。
20161207
とりあえず。
勉強(の成果)を定量化する作戦その1。
1、机に向かった時間を総勉強時間として、
2、そのうち集中して勉強した時間(自己評価)を実勉強時間にしよう。
1も2も記録してー、割合も出してー、経過を見る。
これ以上無いほど安直だけどまずはここから。
実際に何を得られたか、はちょっと置いとく。
てゆーわけで今日!
総勉強時間
基本情報 1.2h + ぷろぐらみんぐ 6.0h + 英語 1.0h = 8.2h
実勉強時間
基本情報 1.0h + ぷろぐらみんぐ 3.0h + 英語 0.5h = 4.5h
さいしょから!!!ワーストを!!!叩き出しました!!!
やったぁ。