投稿

ラベル(Rails6)が付いた投稿を表示しています

【Rails6】mechanizeでWebスクレイピングをやるよ!

イメージ
この記事の概要 mechanaizeというgemを使って、webスクレイピングを試してみました。 目次 この記事の概要 目次 注意 やってみよう 参考文献 注意 スクレイピングをするサイトによっては、意図的にサーバーダウンを起こすことにも繋がり、場合によっては逮捕・起訴されることもあります。また、著作権などを著しく侵害する場合もあるので、基本的には自己責任でWebスクレイピングをやるようにしてください。事件になった例について、詳しくは 岡崎市立中央図書館事件 などを参照されるといいと思います。 やってみよう 事前準備編 まず[rails new]コマンドで、sampleAppという名前のアプリケーションを作成します。  $ rails new sampleApp  その後cdコマンドでディレクトリを移動して、  $ cd sampleApp  クラスを作ります。今回はclassという名前のControllerを作りたいので、第4引数に[Class]を指定してあげます。  $ rails g controller Class  controller編 [app] > [controllers] > [class_controller.rb]に移動します。 デフォルトで、こう書いてあると思うので class ClassController < ApplicationController end class ClassController < ApplicationController     def index        agent = Mechanize.new         page = agent.get("https://www.yahoo.co.jp/")         @elements = page.search('h1') # h1要素を検索     en...

【Rails6】herokuで投稿した画像が表示されない

この記事の概要 herokuの無料プラン(Free)プランを使ってると、更新ボタンを久方ぶりに押した時などにアップロードしたはずの画像が消えるよねーって話と、その解決策。 Railsで作成したアプリケーションにActive Storageと、Amazon S3を導入する方法で、どうやって実装していけばいいかを解説する。 目次 この記事の概要 目次 仕様 画像が消える問題 対処法 参考文献 解決策 仕様 ・mac OS Catarina バージョン10.15.1(2017モデル) ・Rails 6 ・heroku Rails 6で作成したWebアプリケーションをherokuのフリープランでアップロードしたという前提で話します。 herokuは有料プランではなく、無料プランのFreeで登録しているとします。 画像が消える問題 herokuへのwebアプリケーションのアップロードが済んだ日の翌日、localhost:3000にアクセすると、どうやら画像が表示されていない...。 試しに適当な画像を一枚選んで再アップロードしてみたら、きちんと表示される。 どうやら、画像が投稿されてしばらく経つと、画像が勝手に消去されるらしい。なぜだろう。 対処法 ・画像が消える理由 herokuのリポジトリがdynoという単位で管理されており、Freeプランだと一定時間経過後にdynoが再起動される仕様になっているから。 →つまり、再起動されるたびに保存されているファイルは消去される。 ・では、どうすればいい? 手順をざっくり解説すると、こうなる。 ①AWSコンソール( こちら:https://aws.amazon.com/jp/console/ )にアクセスし、「S3」を選択。 ②「S3」で、新しいバケットを作成し、自分のトークンIDとアクセスキーを取得。 ③aws-sdk-s3というgemをインストールし、vim上でcredientalファイルにIDとキーを記述する。 ④$heroku buildpacks:add https://github.com/heroku/heroku-buildpack-activestorage-preview ...

【Rails6】環境変数を正しく設定したのに取得できない時は

この記事の概要 環境設定で、例えば外部サービスと連携するときにAPIキーやトークンを環境変数に保存してデプロイするときに、環境変数がエラーだよって言われる時は、' ', " ", ←こいつらを見直そう Rails6(自分の場合はそうでしたが)に限った話ではないと思われるので、例えばlaravelを使っている人(laravelほとんど触ってないので分かりませんが)とかにも当てはまると思います。多分。 目次 この記事の概要 目次 環境 自分が直面した課題 やってみたこと 対処法 まとめ 参考文献 環境 ・mac OS catarina 10.15.1 Beta ・Rails 6.0.0 ・heroku 自分が直面した課題 やろうとしことは、PayJP(  https://pay.jp/  ) という、オンライン決済プラットフォームを自社のサービスに導入しようとした事だ。Pay JP にはcheckoutという機能があり、なんといっても最大の特徴はjavaScriptのコード一つで、決済画面が実装できる事だ。もちろん、Railsのコントローラとデータを紐づける必要性はあるが、それでもプロが作ったUIライブラリと複雑な決済処理を、javaScriptのコード一つで実装できるのは、なかなか画期的で凄いことに思える。 < script type = " text/javascript " src = " https://checkout.pay.jp/ " class = " payjp-button " data-key = " pk_test_0383a1b8f91e8a6e3ea0e2a9 " data-submit-text = " トークンを作成する " data-partial = " true " > </ script > 引用: Pay jp より(https://pay.jp/docs/checkout) Pay.jpには日本語リファレンスも用意されてい...

【Rails5・6】新しいプロジェクトを作る時の備忘録

この記事の概要 Railsプロジェクトを作る方法だが、何回やってもあまりちゃんと覚えられないので記事に残すことにした。この記事では、Railsプロジェクトを作る際はどのようにして作ればいいのかを簡単にまとめていきたい。 目次 新規Railsプロジェクトの作成 ディレクトリの移動 データベースの作成 サーバを立ち上げる まとめ 関連記事 新規Railsプロジェクトの作成 まずはターミナルを起動し、Railsプロジェクトを作成するコードを書く。 $ rails new [プロジェクトネーム(任意の名前でOK)] プロジェクト名の下に「-d postgresql」と記入することで、ローカル環境でもpostgresqlを使 用することができる。 $ rails new [プロジェクトネーム(任意の名前でOK)] -d postgresql SQLで代表的なものには、「MySQL」「SQLite」などがある。 ここでは「Twitter_sample」というアプリを作るため、 $ rails new Twitter_sample -d postgresql という風に打ち込めばOK. すると、長いコードがズラズラと自動生成されていく。 ディレクトリの移動 $ cd [プロジェクト名] 「cd」の後に「プロジェクト名」を入力することで、そのプロジェクト名のある場所に移動することができる。 今回は、先ほど作ったTwitter_sampleという場所に移動したいため、 cdの後に一つスペースを空けて、「Twitter_sample」と入力すれば良い。 $ cd Twitter_sample 話は脱線するが、文字の打ち間違いなどにより、思ってたのと違うディレクトリに移動したい時は、 $ cd とだけ打てばいい。 データベースの作成 お目当のフォルダにcdを使って移動できたら、データベースを作る。 $ rails db:create このコードを打てば、データベースがまたもや勝手に作られていく。 サーバーを立ち上げる $ rails s ここでは「bin/rails s」と打っても良い。 すると、デフォルトのブラウザにRailsのオフィシャルペ...