ECのウェブ担当者のメモ

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

スポンサーリンク

Ruby

Your bundle only supports platforms ["x86_64-darwin-20"] but your local platform エラー

capistrano で deploy したら以下のエラーが発生。 bundle stdout: Nothing written bundle stderr: Your bundle only supports platforms ["x86_64-darwin-20"] but your local platform is x86_64-linux. Add the current platform to the lockfile with `…

key must be 32 bytes | ActiveSupport::MessageEncryptor

Rubyをバージョンアップしたら key must be 32 bytes と怒られました 下記の様な複合化の処理が合った時に、 def self.decrypt(password) secret_key = 'your-key_1234567890123456789012345678901234567890' ActiveSupport::MessageEncryptor.new(secret_ke…

ActiveRecoredのmigrationでdrop tableをする

ActiveRecoredのmigrationを使ってdrop tableをする場合のサンプル 一様中身は空になってしまうが、rollbackで戻せるようにしている。 class DropAdminUsers < ActiveRecord::Migration[5.0] def change drop_table :admin_users do |t| t.string :name, nul…

Rubyの消費税計算の話

最初、金額に消費税かけて切り上げすればOKでしょと思って (price * tax).ceil をしたところ (400 * 1.1).ceil の結果は、 441 となります。 くそ、、、 こんな親切な数字なのになんで 440 にならない、、、 くそ、、、 で実際 400 * 1.1 すると 440.0000000…

RubyMineで間違ったファイルタイプを割り当ててしまった時の変更方法

RubyMine で aaaaaa.rb というファイルだけど、RubyではなくText を間違って割り当ててしまった時の設定の修正方法です。 Preference > Editor > File Types を表示 Text を選択すると、Registed Patternsに aaaaaa.rb があるはずなので これを削除するとaaa…

Rubyで複数の区切り文字で文字列を配列に変換したい!

例えば str = 'aaaa+bbbb cccc' の文字列を ['aaaa', `bbbb', 'cccc'] にしたいんだよね!という時の話です。 解決案 個人的にたどり着いたのは 一回置換しよう! str.gsub('+', ' ').split(/[[:blank:]]+/) です。 「+」を「 」スペース に置換してから 「…

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

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

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

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

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 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>…

ActionView::MissingTemplateの対策

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

RubyでStringを配列に変換する

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

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

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

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

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

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

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