ECのウェブ担当者のメモ

ECサイトを運営管理している、WEB担当プログラマのメモ

スポンサーリンク

ActionController::InvalidCrossOriginRequestが発生した時の対策

Ruby on RailsでActionController::InvalidCrossOriginRequestが発生した時の対策です。 なぜInvalidCrossOriginRequestが発生するのか? 大半が、Ruby on Rails が行ってくれている、CSRF(クロスサイトリクエストフォージェリ)対策に引っかかっているからだ…

Ruby on Railsで秒で指定した時間を時:分:秒に変換する

やりたいことは、タイトルの通りですが、 73秒で指定した時に、00:01:13という結果が欲しい時は Time.at(73).utc.strftime('%X') と指定すると、 00:01:13 となってくれます。 本当にナイスです。 メソッド無しで考えると、3600で割り算して、60で割り算して…

Rubyでstringの文字数を調整したり、部分的に取り出したりする

Rubyでstringの文字数を調整したり、部分的に取り出したりする方法です。 使用用途として外部のサービにデータを渡す時など、文字数に制限がかっかていたりすので、 その仕様に合わせて文字数を調整する方法です。 先頭から5文字取得する 先に実際のサンプル…

Railsのenumで値(Value)を取得する

下記のようなenumがあったときに、 class Item < ActiveRecord::Base enum status: { draft: 1, published: 2, test: 3 } Imteオブジェクトから Valueの値(1 とか 2 とか)を取得したい時の方法です。 hash的な考え方 まず1つ目が、 Item.statuses[item.stat…

検索でのランディングページを確認する方法

Googleアナリティクスで、検索でどんなページがランディングしているか確認する方法です。 まず、Googleアナリティクスを開いて [集客] > [Search Console] > [ランディングページ]をクリックします。 そうすると、ランディングページの一覧を確認することが…

Railsのmeta-tags gemで og:image:widthと og:image:heightを設定する

タイトルの通りですが、Ruby on Rails でSEO系のタグをいい感じに設定が出来る meta-tags のgemを使って、og:image:widthと og:image:heightを設定する方法です。 meta-tags gemは以下です。 github.com で。 そもそも、なんで、og:image:widthと og:image:h…

Ruby on Railsで UTCの時間をJSTに変換する。

例えば logined_atにUTCの時間が入っているとして、 p logined_at # 2017-06-29 02:26:41 UTC この logined_atをJSTで表示したいとき in_time_zone('Tokyo') を使います。 p logined_at.in_time_zone('Tokyo') # Thu, 29 Jun 2017 11:26:41 JST +09:00 Ruby …

RailsのActiverecordeで既についているNot null制約を外す

ActiverecordeでカラムにNotNull制約をつけてしまったけど、 やっぱり、NotNull制約を外したいなんて時ありますよね。 そんな時は、 change_column_null マイグレーションファイルを下記の用になります。 class ChangeNotNulToUser < ActiveRecord::Migratio…

Rails simple_formatの勝手につく<p>タグを削除したい

Railsのsimple_formatを使うと勝手にタグで囲まれます - text = 'aaaaa' = simple_format(text) みたいにすると <p>aaaa</p> と出力されます そんな時に、 <p> => <div> にしたい時は - text = 'aaaaa' = simple_format(text, {}, wrapper_tag: "div") とすると。 <div>aaaa</div> にた</div></p>…

Googleスプレッドシートのショートカット一覧

MacのGoogleスプレッドシートのショートカット一覧です。 個人的には、ショートカットで行を挿入 「control+option+I、R」 したかっただけですが、 いちよう一覧で記載しておきます。 ご参考まで 一般的な操作 項目 ショートカットキー 列を選択 control+spa…

lazyload.jsの使い方まとめ

色んな使い方があるんですね。 参考になります。ありがとうございます。 cly7796.net 関連記事 marketing-web.hatenablog.com marketing-web.hatenablog.com jQuery最高の教科書作者: 株式会社シフトブレイン出版社/メーカー: SBクリエイティブ発売日: 2013/…

DEPRECATION WARNING cleanup! is deprecated and will be removed from Rails 5.1

Rails5でdelayed_jobを起動したら、以下のようなWARNINGが出力されました。 DEPRECATION WARNING: cleanup! is deprecated and will be removed from Rails 5.1 (use Rails.application.reloader.reload! instead of cleanup + prepare) (called from <top (required)> at bi</top>…

autocomplete off 対策には、autocomplete new-password

クロームなんかで、パスワードフィールドに勝手に入力してくるのやめて欲しいなと思って autocomplete='off' を設定しても、効かないじゃん!って思ったことありませんか? そんなときは、new-passwordです。 autocomplete='new-password' そうすると、空で…

RailsのAction Mailerを使ってSendGridのカテゴリーを設定する

RailsのAction Mailerを使ってSendGridのカテゴリーを設定する方法です。 まずSendGridはこちら sendgrid.kke.co.jp SendGridは、主にメール配信のサービスになります。 最近使いはじめて、最高に便利なサービスです。 無料の利用枠もあるので、興味のある方…

ActionView::MissingTemplateの対策

ActionView::MissingTemplate そうです。 Railsでviewでテンプレートが無いときに発生します。 基本的には、テンプレートを準備しなかったミスだとは思うんですが、 動的に部分テンプレートを見つけて描画したりするときなどは、 もしテンプレートがあれば、…

Awesome Nested Setのチートシート

こちらRailsのカテゴリを階層で管理してくれるGem Awesome Nested Setです github.com そのチートシートです。 github.com 主に使いそうなところ これで一気にループ回せます。 Category.each_with_level(Category.root.self_and_descendants) do |category,…

GitHubでForkしたリポジトリをmargeする

Git

下記の様に、cloneして作ったリポジトリに対して、親のmyapp.gitをmargeする方法です。 $ git clone git@bitbucket.org:xxxxxx/myapp.git org_originという名前で、親のリポジトリを参照できるようにします。 $ git remote add org_origin git@bitbucket.org…

RubyでStringを配列に変換する

rubyでStringを配列に変換する方法です。 使う関数は split(pattern) です。 たとえば 080-1234-5678 を tel = '080-1234-5678' tel.split('-') すると ["080", "1234", "5678"] という感じに配列に変換してくれます。 配列に分割出来なかったら 例えば、 “0…

AWS EC2のAmazonLinuxでタイムゾーンをUTCから日本時間に変更する

作業は主に2つ /etc/sysconfig/clockの編集 /etc/localtime のリンク先に東京の時間帯ファイルを設定 /etc/sysconfig/clockの編集 /etc/sysconfig/clockに設定されている タイムゾーンをUTC から Asia/Tokyo に変更します vim /etc/sysconfig/clock ZONE="As…

RailsのSTI(Single Table Inheritance)を無効にする

RailsのActiveRecordでtypeカラムがあると、STI(Single Table Inheritance)としてテーブルを使おうとします。 一つのテーブルでtypeの値によって複数のモデルが共有する感じです。 これ、とても便利なんですが、意図せずtypeカラムがあってもSTIとして扱いま…

RailsのActiverecordでkeyがid ValueがmodelオブジェクトのHashを作りたい

簡易的にN+1問題に対応しようとした時に、 Keyがid, ValueがそのモデルのオブジェクトのHashが欲しい時がありました。 そんな時は、index_byが良いっぽいです。 たとえば、Itemモデルで下記のようなテーブルがあって id name code 1 あああ aaaa 2 いいい bb…

Railsで複数チェックボックをstrong parametersで取得する

Railsでチャックボックスのフォームを使おうとすると毎回迷走します。 複数チェックボックを設定してそれを、controller側でStrong parametersで取得する方法です。 ItemのidをチェックボックスのValueに設定しています。 view (省略) - @items.each do |ite…

Rubyで数値を0詰めする方法

Rubyで数値を0詰めする方法です sprintfを使って フォーマットさせます sprintf("%03d", 3) 結果は "003" になります。 関連記事 marketing-web.hatenablog.com marketing-web.hatenablog.com たのしいRuby 第5版作者: 高橋征義,後藤裕蔵,まつもとゆきひろ…

サイトの背景と文字色で参考になるサイト

こちらです。 www.hp-stylelink.com 文字色 白に対して色んなシーンのパターンが紹介されています。 おっしゃれな感じでとても参考になります。 関連記事 marketing-web.hatenablog.com 伝わるデザインの基本 増補改訂版 よい資料を作るためのレイアウトのル…

Nginxで特定のlocationだけベーシック認証を除外する方法です 基本的には、全体に的にベーシック認証をかけて、特定のディレクトリ(ロケーション)だけベーシック認証なしでアクセスできるように 設定する方法です。 auth_basic "Restricted"; auth_basic_use…

Amazon RDS(Postgres)からdumpをとってrestoreする方法

Amazon PostgresのRDSから dumpを取得して、restoreする方法です。 RDSに限ったことでは無いかもしれませんが、 今回、RDSのデータを元にlocalのDBを作りたかったく その作業メモです。 基本は以下の通りです。 pg_dump -Fc -v -h [endpoint of instance] -U…

Rubyで日付の文字列からDate型Objectに変換する方法

タイトルの通り日付の文字列からDate型Objectに変換する方法です。 そんなときは、Date.parseが便利で Date.parse('2017-01-01') とすると、変換してくれます。 関連記事 marketing-web.hatenablog.com marketing-web.hatenablog.com たのしいRuby 第5版作者…

Postgresのシーケンス(sequence)の番号をupdateする方法

タイトルの通り PostgreSqlでシーケンスの番号をupdateする方法です。 下記のクエリーを実行 SELECT SETVAL ('シーケンス名', '番号'); 以上です。 関連記事 marketing-web.hatenablog.com marketing-web.hatenablog.com 内部構造から学ぶPostgreSQL 設計・…

ディレクトリ内のファイル容量をチェックする方法

dfコマンドを叩いて以下のような結果が出た時に、 実際に何処のディレクトリが増えてるのと思うことがあります。 ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置 /dev/xvda1 30830568 16642096 14088224 55% / そんなときは、 du コマンド ディレ…

Rails + Nginx環境で強制的にURLの最後に / を付ける方法

表題の通り、Rails + Nginx環境で強制的にURLの最後に / を付ける方法です。 そもそもなぜ付ける必要があるのか? そうです。Google大先生に怒られたことがきっかけです。 Search ConsoleのHTMLの改善の項目で、重複するメタデータとして /item/12345/ /item…