capybaraを使ってWebページをスクレイピングする(テストじゃなくて)
capybaraはWebアプリケーションのテスト用のライブラリとして有名ですが、テスト目的でなく、単にスクレイピング用のツールとしても使えます。この記事ではcapybara+selenium+chromeヘッドレスを使用してWebページをスクレイピングするサンプルを紹介します。
capybaraはWebアプリケーションのテスト用のライブラリとして有名ですが、テスト目的でなく、単にスクレイピング用のツールとしても使えます。この記事ではcapybara+selenium+chromeヘッドレスを使用してWebページをスクレイピングするサンプルを紹介します。
タイトル読んでも「ちょっと何言ってるか分かんない」感じだが、要するにhas_one
やhas_many
で親子関係を持つモデルがあったとして、子のファクトリ生成時に親側の属性も設定するという話(その逆もしかり)。
railsアプリを開発していると、自作DSLだとか設定ファイルを読み込んで何らかの処理を実行するということがよくある。その際に問題になるのは、設定ファイルを変更するたびにいちいちサーバを再起動しないといけないということ。小さなアプリならまだしも、そこそこの規模になってくると、再起動にも結構時間がかかてしまい、鬱陶しいことこの上ない。そこで特定のファイルを監視しておき、更新されていたら次回リクエスト時に特定の処理を走らせることにする。
active_decoratorにてデコレートされたモデルをrspecでテストする際、デコレータ内でヘルパーメソッド(link_to
とかurl_for
とか)を使用しているとNoMethodErrorが発生する。これはActiveDecorator::ViewContext
にActionView::Context
が積まれてないことが原因みたい。rspec専用のgem(mizoR/active_decorator-rspec)もあるみたいだけど、まだrails 5には対応できてない((active_decorator-rspec 0.0.9で対応したようです。))(もしくはrspec 3.5?)ようなので、対応策をメモっておく。
Webアプリケーションを作っていて、何らかのアクションの後にポップアップを開きたい場面があると思います。例えば『とあるデータを登録して、登録が完了した後にポップアップでプリント画面を開きたい』場合とか。