SakuraWi - BLog

WEBエンジニア。聴いたお話をまとめておく倉庫的な。スタックストックスタック!

技術

seed.rbでテーブルの初期化をする 【MySQL】

rails db:seedをした時に毎回テーブルの中身を初期化する処理を書く。 code ActiveRecord::Base.establish_connection ActiveRecord::Base.connection.disable_referential_integrity do ActiveRecord::Base.connection.tables.each do |table| next if tabl…

【Amazon Lightsail】wordpressを公開!最初にする設定【GoogleDmainsを利用】

Amazon Lightsailを利用して、wordpressをインストール。 サイトを立ち上げます。 Amazon LightsailはEC2の超簡易版って思ってもらったらOK。 Amazon Lightsailを利用する ちなみにメリットとしては、超簡単に始められる。 料金が安いプランが3.5$/月 AWSな…

【Ruby】Seleniumで要素を除外して取得する方法

Seleniumを利用していると取得したくない要素も取得してしまってうまく動作しないことがあると思います。 除外するメソッドは用意されていないみたいです。 Ruby on Railsを書いているひとであれば、 .notとかしたくなると思います。 jQueryでも.notでclass…

【Google SpreadSheet】WebAPIにしてGETした時のリダイレクトへの対応【Ruby】

GoogleSpreadsheet(スプレッドシート)をWeb APIにして公開、RubyでGETしようとするとリダイレクトさせないとエラーになってしまいます。 302 Moved Temporarily が返ってきてしまいます。 これに対応します。 GoogleSpreadsheetのAPIのredirectに対応する方…

【JavaScript】Promiseって何かを知らない。

自分なりの理解メモ JSでは、処理の順番が書いた順番に担保されない、という問題がある。 下記記事からコードをお借りしました。 https://qiita.com/YoshikiNakamura/items/732ded26c85a7f771a27 処理を待って欲しいが待ってくれない 個人的にすごく理解しや…

GASをCLIでdeploy して gitで管理する方法

最近chrome拡張とスプレッドシートを触ってます。 当然、GAS (Google App Script)も触れていてCLIでいつもの当たり前の環境を作る方法です。 deployをCLIから行う gitでコードの管理をする

【AWS lambda】環境変数を利用して実行環境によって処理を切り替える方法

AWS lambdaで開発をしていると、localと本番環境の時に処理だったりpathを切り替えたい時があると思います。 例) layerを利用していて本番の時は /opt配下をみたい 環境変数を利用する 結論から書くと、環境変数に ENVIRONMENT: production などを追加して処…

【AWS lambda】RubyでlayerにGemfile, chromedriverをアップロードして使用する方法

AWS lambdaのlayerにRubyのGemfileとchromedriverをアップして利用する方法のまとめです。

AWS lambdaを使って一定時間ごとにrubyを動かしたい

AWS Lambdaの奮闘記です。 初めて触るAWS Lambdaちゃんに苦戦した様子の備忘録。

【Ruby on Rails】SendGridのAPIを使ってメールを送信する

Ruby on Railsでメールを飛ばすのを利用するときに SendGridを検討することは多いと思います。 結構本番環境で飛ばしたり、API使ってやるにあたってハマったところが多かったので残します。 smtpの設定で飛ばす方法の記事は多いのですが、APIを利用する記事…

【Chrome拡張】DOMの表示を待ってからクリックさせたい

【Chrome拡張】編です。 今回はタブが新しく開けたりした場合にDOMの表示を待ってからjsでクリックさせたい時のノウハウを書きます。 結論から書くと以下です。 const jsInitCheckTimer = setInterval(jsLoaded, 1000); function jsLoaded() { if (document.…

【Chrome拡張】新規タブの読み込み完了をフックさせる方法

【Chrome拡張】の開発についての記事です。 タブが作成された時に、読み込み完了をさせてから処理を書きたい時の方法を書きます。 結論のコードから先にのせておきます。 chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){ console.log(…

【Chrome拡張】background.jsの発火の確認方法

background.jsのconsole.log などが出力されているのか、発火しているのか気になった時は、 chrome://extensions/に接続して、ここのビューを検証をクリックして、そこのブラウザでのconsoleをチェックしましょう! ビューを検証バックグラウンド ページ こ…

docker + Rails + posgre の設定でハマった

docker上にposgreのDBサーバを立ててRailsするぞの知見。 出ていたエラーとか psql: FATAL: password authentication failed for user "posgre" $ docker exec -it 942a697dd914 bash $ su - postgres postgres=# ALTER USER postgres with encrypted passwo…

【Ruby on Rails】enumとは?enumを使って可読性をあげてみよう

ども、櫻井広大です。 enumについて書いてみようと思います。 enumは使ってみると僕は便利だと思っているのですが、初学者からすると、一体これはどうやって使うんだ?とか、ちょっと抵抗があるなじゃないかと思ってまして そのハードルのようなものが取っ払…

【Ruby on Rails】delegateの使い方【委譲は便利】

Ruby on Railsにおける便利なメソッドとして、 delegateがあります。 こちらを使うと、メソッドチェーンをたくさん書く必要なく実装することができます。 忘れずにrails guideのリンクも置いておきます。 Active Support コア拡張機能 - Rails ガイド delega…

【Ruby on Rails】Rspecで行数を指定してテストを実行する方法

Ruby on RailsのテスティングフレームワークであるRspecを利用する際の行数を指定して実行する方法があります。 bundle exec rspec app/spec/test/test.rb:5 上記のように、最後に :10などのオプションを付与することで、その行のテストを実行することができ…

【Ruby on Rails】Railsにおける inverse_ofについて

双方間の関連付けで、異なるオブジェクトを参照しないように指定するオプション。 同様のレコードを見る、のようなイメージ。 Rails 4.1 以降は自動的に付与されるらしいが、関連付けにオプションが増えたりすると自動的につかないケースがある模様。 has_ma…

【Ruby on Rails】カスタムレスポンスHTTPヘッダを付与する方法【noindexを指定する】

response.set_header('HEADER NAME', 'HEADER VALUE') Rails5以前は以下の方法で書けるようです。 response.headers['HEADER NAME'] = 'HEADER VALUE' 実装例 class TestsController def index @books = Book.all response.headers['HEADER NAME'] = 'HEADER…

Chrome拡張が思ったよりも簡単に作れるのを知って触ってみた

ども、櫻井広大です。 最近社内で思ったよりも簡単にchrome拡張が触れることを知ったのでやってみました。 書いた github.com 実は2ファイルくらいで拡張機能って動かせるんですね。 manifest.jsonを用意して、動かすjsを置いてあげるだけ。 詰まった .forE…

【Ruby on Rails】be_falsyとbe_falseyとbe falseの違いについて【RSpec】

Ruby on RailsのテストをRSpecで書いているみなさん、どうも櫻井広大です。 be_falsy使っていますでしょうか。 タイトルにもある、 be_falsy be_falsey be false の違いについて書きます! RSpecでfalseやtrueの返り値のマッチャ be_falsy ということで、結…

Railsにおける例外処理の考え方とテストでは何をテストするべきか?講座

こちらの記事は、くふうカンパニー Advent Calendar 2018の21日目の記事となります。 くふうカンパニー Advent Calendar 2018 - Qiita 例外処理、みなさんどうするべきなのかちゃんと把握しているでしょうか? 正直言います。 ワタクシ、ちゃんと理解してい…

Rails2年目のさく氏による, stimulus試した実践ガイド

どうも! くふうカンパニーアドベントカレンダー、7日目担当の@KotaSakurawiです。 くふうのアドカレはこちらから▶︎くふうカンパニー Advent Calendar 2018 - Qiita 今日の記事は! フロント寄りの内容になります。Stimulusについて触る機会がありましたので…

はじめてのプルリクエストを出してみよう講座

ども、Sakurawiです。 そういえば、プルリクエストって初めて出す時めちゃくちゃ怖くないですか? そんなあなたにこれくらい書いておけばひとまず、おーけーでしょう!ということを書いておきます。 これだけは書いとけ! プルリクエストを出す時は、これだ…

【VScode】ショートカットで相対パス relative pathをコピれるようにした

まずはこれをプラグインでいれる。 GitHub - enochcheung/copy-relative-path: A VS Code extension for copying relative path of the active file コード > 基本設定 > キーボードショートカット で、ここの次を開いてのファイルを開いて、間違わないよう…

Ruby on Railsを使ってtwitterに画像付きtweetをするぞ

wip記事ですが、追記していきます。 Ruby on Rails使って、twitterにガンガン画像をあげてやろう、画像付きtweetをしようという記事です。 Twitter::REST::Request.new(@client, :post, "https://upload.twitter.com/1.1/media/upload.json", command: 'APPE…

Railsでテーブルを追加するコマンド【migaration】

Ruby on Railsでテーブルを追加、migrationファイルを追加するコマンド、たまーにしか使わないのでいつも検索しちゃいます。 どうせなので自分のブログにも残しておくことにしました。 要点は modelを追加するとテーブルもmigrationファイルも、modelも生成…

【gridlayout】-ms-gridが適用されない問題対応

grid layoutのcssをIE11に適用ようとした備忘録 display: -ms-grid; display: grid; grid-template-columns: 25% 25% 25% 25%; -ms-grid-template-columns: repeat(3, 25%); こんな感じで当てようとしたらあたりません。 CSS Grid Layout Module(IE対応) | …

mac購入後のセットアップ

やったこと全部まとめ mac全般 英かなダウンロード 電池表示を数値で出るようにする ライブ変換OFF caps lockをcontrolにする リピート入力認識までの時間を短いにMAX キーのリピートも速いにする トラックパッドのタップをクリックできるようにする 軌跡の…

スクロールによってヘッダーやフッターを固定するためのcss position stickyが便利

どうも、櫻井です。 最近position stickyなるものを知りまして、これがまた便利だなと思って共有するための記事を書きました。 概要 この方の記事がめちゃめちゃわかりやすいです。 動画もついているし、デモ用のコードがくっついているので。 position: sti…