nokogiriでtbodyが認識されなかった話

Nokogiri::HTML(page.body.toutf8).css('table:nth-of-type(5) > tbody > tr')

のようなコードを書いて実際このセレクタjavascriptなどで試して見て正しいのだがなぜかnokogiri上では認識されない。

qiita.com

この理由はソースコードがtbodyタグを省略していたせいでtbodyが認識されなかったせいみたいだ。

だから少し気持ち悪いが、

Nokogiri::HTML(page.body.toutf8).css('table:nth-of-type(5) > tr')

こうするとうまくいった。

独学でrailsのコードを綺麗にするためにrubocopを入れてみた

 綺麗なコードを書きたい欲求が出てきたけれどどうやったら綺麗にできるか聞く相手もいないので自分だけでできることをとりあえずやってみました。コードの綺麗さとは何かよく自分でもわかっていないですがとりあえずデバッグがやりやすくてあとで見返しやすいものを目指しています。

 最初はgoogle検索でコードを綺麗に書く方法を調べてみたのですがコードが正しく動いたかは自分でもわかるけどコードの綺麗さなんてものは自分じゃわからないのでこのまま調べていてもらちがあかないと思いrubocopという自分のコードを解析してくれるツールを導入してみました。

 railsを最近書いているので何かしらのrailsアプリケーションを綺麗さを意識しながら書いてみようと思い

group :development do
gem 'annotate', require: false
gem 'better_errors', require: false
gem 'binding_of_caller', require: false
gem 'pry-byebug', require: false
gem 'pry-doc', require: false
gem 'pry-rails', require: false
gem 'pry-stack_explorer', require: false
gem 'rubocop', require: false
end

こんな感じのGemfileでその他開発に役立ちそうなツールを入れたあとrubocopを実行してみたらrailsが自動生成したファイルに対してrubocopさんが大量の文句をつけてきたのですがrailsが自動生成するファイルをいじる気は無いので

rubocop --auto-gen-config

とコマンドを打ち

inherit_from: rubocop-todo.yml

と.rubocop.ymlに追加することで現在出ているエラーは無視できるようなのでとりあえずここから何かしらのrailsアプリケーションを書いてrubocopさんに自分のダメな書き方を正してもらおうと思います。