Just do IT

思うは招く

2020-09-01から1ヶ月間の記事一覧

URL末尾のスラッシュはSEOに影響するか

SEO

とてもよくまとめられていた。 URLの最後に付ける「トレイリング スラッシュ」ありなしの違いはSEOに影響するのか? | 海外SEO情報ブログ URL末尾のスラッシュをトレイリングスラッシュと呼ぶ ドメイン名ならスラッシュありなしは関係ないので気にする必要は…

Ruby 3.0.0-preview1 を触ってみた

2020年9月25日、Ruby 3.0.0-preview1 がリリースされた。 Ruby 3.0.0 Preview 1 Released インストール $ brew upgrade rbenv ruby-build $ rbenv install --list-all | grep 3.0.0 3.0.0-dev 3.0.0-preview1 #インストール $ rbenv install 3.0.0-preview1 …

Ruby Array#delete_if の挙動

delete_ifは配列やハッシュに使えるメソッド。 ブロックを渡して、配列やハッシュの要素に該当する要素を削除する。 要素を順番にブロックに渡して評価し、その結果が真になった要素をすべて削除します。 delete_if は常に self を返します Array#delete_if …

RExの問題を振り返る3

REx - Ruby Examinationで出てきた問題を振り返る。 以下のコードを実行するとどうなるか? hoge = "a".to_h puts hoge.class 解答 nilエラーがでる。なぜならaはStringで、Stringクラスにto_hメソッドは使えない。 irb(main):001:0> hoge = "a".to_h NoMeth…

Heroku のタイムゾーンを JST に変更したい

該当プロジェクトのディレクトリに行く。 #JSTにセット $ heroku config:add TZ=Asia/Tokyo Herokuのbashにアクセス $ heroku run bash #dateコマンドで確認 ~ $ date HerokuスケジューラーはUTCでしか設定できないので注意。

RExの問題を振り返る2

REx - Ruby Examinationで出てきた問題を振り返る。 問題 次のコードを実行するとどうなりますか。 s = <<'EOF' Hello, Ruby EOF 'EOF' p s 解答 以下が表示される。 "Hello,\nRuby\n" 解説 これはヒアドキュメントという機能を使ったもの。 普通の文字列リ…

RExの問題を振り返る1

REx - Ruby Examinationで出てきた問題を振り返る。 問題 $valはどんな値になりますか? $val = 0 class Count def self.up $val = $val + 1 $val == 3 ? true : false end end [*1..10].any? do Count.up end p $val 解答 答えは3。 なぜそうなるのか、ひと…

rails db:reset は何をしているのか

結論 rails db:resetをすることで、以下2つのコマンドをまとめて実行できる。 rails db:drop DBの削除 rails db:setup DBの作成(db:create) スキーマからのテーブル作成(db:schema:load) 初期データの登録(db:seed) 4.3 データベースをリセットする bin/rail…

新しい技術へ好奇心を持ち続けることの大切さ

今日先輩方に学んだお話。 ひとことでいうと、「新しい技術は常に追っておけ」 昔オンプレミスにこだわっていた人は、クラウド時代の今、仕事が減っている 昔は安定しているように見えた(だが時代の急速な変化により状況は変わった) クラウドは最初はおも…

devise gem のメール認証テストで Missing host to link to! Please provide the :host parameter エラー

問題 Devise のメール認証のシステムスペックを書いていたときに以下のエラーが出た。 ActionView::Template::Error: Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true 解決 confi…

RSpec で undefined local variable or method パス名 for RSpec::ExampleGroups::Nested:Class エラー

問題 さくっと確かめたいことがあり、system specがまず動くかどうかのスペックを書いた。実行すると以下のエラーがでた。 undefined local variable or method `new_user_session_path' for RSpec::ExampleGroups::Nested:Class コードはこちら。 RSpec.des…

既存コードを疑うことの大切さ

今日の学び:「コードを憎んで人を憎まず」 前任者のコードが正しいとはかぎらない 書いたときの実装方法としては間違っていなかったのかもしれないが、アプリケーションが肥大化するにしたがって、そのコードが適切じゃなくなるケースもある 違和感を感じた…

自分のロールモデルは誰なのか

ふと思った。 「自分のロールモデルは誰なんだろ?」 ロールモデルの詳しい定義ってなんなんだ。 「ロールモデル」とは、自分にとって、具体的な行動や考え方の模範となる人物のこと。人は誰でも無意識のうちに「あの人のようになりたい」というロールモデル…

フィヨルドブートキャンプを卒業しました。

なぜフィヨルドブートキャンプに入ったのか? サイトデザインが「なんとなくいいな〜」と思った 現場力がつきそうだと思った お金で釣っていなかった 決めたきっかけ 何を学んだのか? どれだけやったか? どんなことに苦労したか? lsコマンド作成 デプロイ…

devise でメール認証を実装したい【Rails】

やりたいこと 前提 手順 メール認証を有効にする もし途中からメール認証を実装したいなら deviseオプションを追加 メール設定 登録 注意 参考 やりたいこと devise gemを使って、「登録 → 確認のメールがくる → メール内のリンクをクリック → 認証OK」の流…

優れたリーダーはどうやって行動を促すか

あることがきっかけでサイモン・シネック氏のTEDトークを見た。 このTEDでの学びをメモする。 人は「何を」ではなく「なぜ」に動かされる Apple、マーティンルーサーキング、ライト兄弟など、時代を変えた組織や人は、「ある法則」にもとづいて人々をインス…

Rails6 で Webpacker::Manifest::MissingEntryError がでた

状況 app/javascript/packs下に新しいJavaScriptファイルを作成したが、読み込まれずエラーがでた。 Webpacker::Manifest::MissingEntryError webpackの開発サーバーも立てていた。 ./bin/webpack-dev-server 解決 Railsとwebpackのサーバーを再起動したらな…

Heroku の scheduler で Rails タスクを定期実行したい

やりたいこと Herokuのスケジューラーを使って、Rails(rake)タスクを定期実行したい。 前提 Herokuにアプリをデプロイ済み タスクを用意済み ローカルで動くことを確認済み 手順 今回は、以下のように「ネームスペース:タスク名」という構成のタスクを用意…

devise のログインURLをカスタム、変更したいときに参考になりそうな記事

自分用メモ。 DeviseのURLを変更する|KezzyTak|note Rails: deviseのURLをカスタムしたい - Qiita 感謝🙏

Rails の /bin/setup にある db:prepare はなにをするのか

rails newをするとデフォルトで./bin/setupスクリプトが生成される。 Rails6 では、そのなかにbin/rails db:prepareコマンドがある。 bin/rails db:prepare これは何をしてくれるのか。 DBが存在しない場合 bin/rails db:prepareがすること DBをつくる schem…

Rinku gem で リンクに rel="noopener noreferrer"属性を付与したい

URLやemailの文字列をリンクにしてくれる便利な Rinku gem。 vmg/rinku: Autolinking. Ruby. Yes, that's pretty much it. target _blank属性を付与できるのは公式ドキュメントからわかっていたが、rel="noopener noreferrer"属性もセキュリティのために付与…

Ruby で特定の期間からランダムに日付を取得したい

Random.rand(日付の期間..日付の期間)で取得できる。 irb> require 'date' start_day = Date.new(2020, 6, 15) last_day = Date.new(2020, 9, 15) irb(main):003:0> Random.rand(start_day..last_day) => Sat, 05 Sep 2020 irb(main):004:0> Random.rand(sta…

Ruby で 配列からランダムに要素を取得したい

Array#sampleが使える。 ary = [*(1..20)] irb(main):004:0> ary.sample => 1 irb(main):005:0> ary.sample => 8 irb(main):006:0> ary.sample => 18 docs.ruby-lang.org k-koh.hatenablog.com

Ruby で配列にたくさんの数値を簡単に代入したい

下記のように数値を範囲で指定して配列に代入できる。カンタン便利。 irb(main)> ary = [*(1..20)] => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

Heroku と GitHub を連携。masterにマージされたら自動デプロイとマイグレーションを実行する

GitHubと連携し自動デプロイ Herokuで該当アプリの管理ページへ Deployタブへ Deployment methodでGitHubを選択 GitHub認証をする App connected to Githubで該当するGitHubリポジトリを探す Enable Automatic Deploy をクリック。ブランチはmasterを選択し…

CSSにスクロールを表示させる(縦、横)

横スクロール .horizontal-scroll-table { overflow: auto; white-space: nowrap; } はみ出たtableを横スクロールで滑らかに表示するCSS - Qiita 縦スクロール .vertical-scroll-table { overflow: auto; overflow-x: hidden; max-height: 12rem; } ※max-hei…

CSS で何番目以降を指定する方法

たとえば、tableというクラス直下のtd要素の2番目以降をtext-align: center;にしたいとき。 .table td:nth-child(n+2) { text-align: center; } 何番目系の便利なCSSまとめ - Qiita nth-child() でx個目以降を指定するcss | eturlt.net

webmock を使って外部API をローカルと CI でテストしたい

やりたいこと CircleCIで外部API/Web APIにアクセスしている箇所をテストしたい テスト環境上で本番APIにリクエストを送りたくない 前提 $ ruby -v ruby 2.7.1 $ rails -v Rails 6.0.3.2 その他 webmockを使ってAPIレスポンスをスタブしていること VCRは使っ…

Rails エラーページを自動生成する hanmoto gem

hanmoto の設定 ソニックガーデンの方が作成されたgem。同社で1年以上にわたって運用実績があるとのこと。 参考 Railsでpublic以下の静的ページ(404.htmlといったエラーページ等)をデプロイ時に生成するgemを作った - Qiita aki77/hanmoto: Public pages m…

Rails アプリへのアクセスを https にする

デフォルトでconfig.force_ssl = trueがコメントアウトされている。これをコメントインして有効にする。 config/environments/production.rb # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. config.force…