ECのウェブ担当者のメモ

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

スポンサーリンク

RubyでStringを配列に変換する

f:id:jun9632:20161201164715p:plain

rubyでStringを配列に変換する方法です。

使う関数は

split(pattern)

です。

たとえば

080-1234-5678

tel = '080-1234-5678'
tel.split('-')

すると

["080", "1234", "5678"]

という感じに配列に変換してくれます。

配列に分割出来なかったら

例えば、

“00-00"を'-‘で配列にすると

"00-00".split('-')

以下のような結果になりますが

["00", "00"]

もし、"00-00"を'=‘で分割しようとすると

"00-00".split('=')

結果は、以下のように、その文字列自体を配列に入れて返してくれます

["00-00"]

正規表現を使って分割

これまで、文字列を使って分割してきましたが、正規表現を使って分割することもできます。

’32145617741345’なんて文字列を、'1'で分割するときに

'32145617741345'.split('1')

と書いてもいいですが、

'32145617741345'.split(/1/)

としても、以下のような結果が取得できます。

["32", "456", "774", "345"]

今回の例だと単純過ぎるので、そんな使い方はあまりしないと思いますが、 もっと複雑なパターンで分割したいときなどは、正規表現も有効に使えると思います。

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

恋するプログラム―Rubyでつくる人工無脳 (プレミアムブックス版)

恋するプログラム―Rubyでつくる人工無脳 (プレミアムブックス版)

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

f:id:jun9632:20161021123921p:plain

作業は主に2つ

  • /etc/sysconfig/clockの編集
  • /etc/localtime のリンク先に東京の時間帯ファイルを設定

/etc/sysconfig/clockの編集

/etc/sysconfig/clockに設定されている タイムゾーンをUTC から Asia/Tokyo に変更します

vim /etc/sysconfig/clock
ZONE="Asia/Tokyo"
UTC=true

/etc/localtime のリンク先に東京の時間帯ファイルを設定

/etc/localtime と時間帯ファイル(Asia/Tokyo)にシンボリックリンクを作成する。

sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

きっとこれでよいはず。

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

Amazon Web Services パターン別構築・運用ガイド

Amazon Web Services パターン別構築・運用ガイド

参考サイト

docs.aws.amazon.com

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

f:id:jun9632:20160816174108p:plain

RailsのActiveRecordでtypeカラムがあると、STI(Single Table Inheritance)としてテーブルを使おうとします。

一つのテーブルでtypeの値によって複数のモデルが共有する感じです。

これ、とても便利なんですが、意図せずtypeカラムがあってもSTIとして扱います。

それのSTIを無効化する方法です

class Item < ActiveRecord::Base


  self.inheritance_column = :_type_disabled # 追加


end

以上です。

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

Ruby on Rails 4 アプリケーションプログラミング

Ruby on Rails 4 アプリケーションプログラミング

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

f:id:jun9632:20160815110531p:plain

簡易的にN+1問題に対応しようとした時に、 Keyがid, ValueがそのモデルのオブジェクトのHashが欲しい時がありました。

そんな時は、index_byが良いっぽいです。

たとえば、Itemモデルで下記のようなテーブルがあって

id name code
1 あああ aaaa
2 いいい bbbb
3 ううう cccc

以下のようなハッシュが作りたい時

{1=>#<Item id: 1, name: 'あああ', code: 'aaaa'>, 2=>#<Item id: 1, name: 'あああ', code: 'aaaa'>, ・・・・}

下記のように index_byを使うと取得できます。

Item.all.index_by(&:id)

以上

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

Railsレシピブック 183の技

Railsレシピブック 183の技

参考サイト

index_by (Enumerable) - APIdock

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

f:id:jun9632:20160812171332p:plain

Railsでチャックボックスのフォームを使おうとすると毎回迷走します。

複数チェックボックを設定してそれを、controller側でStrong parametersで取得する方法です。

ItemのidをチェックボックスのValueに設定しています。

view

(省略)
- @items.each do |item|
  = check_box_tag'items[id][]', item.id
(省略)

controller

  def item_id_params
    params.require(:items).permit(id: [])
  end

以上、このような感じです。

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

Ruby on Rails 4 アプリケーションプログラミング

Ruby on Rails 4 アプリケーションプログラミング

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

f:id:jun9632:20160812103741p:plain

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

sprintfを使って フォーマットさせます

sprintf("%03d", 3)

結果は

"003"

になります。

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

たのしいRuby 第5版

たのしいRuby 第5版

参考サイト

sprintf フォーマット (Ruby 2.2.0)

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

f:id:jun9632:20160810122323p:plain

こちらです。

www.hp-stylelink.com

文字色 白に対して色んなシーンのパターンが紹介されています。

おっしゃれな感じでとても参考になります。

関連記事

marketing-web.hatenablog.com

伝わるデザインの基本 増補改訂版 よい資料を作るためのレイアウトのルール

伝わるデザインの基本 増補改訂版 よい資料を作るためのレイアウトのルール

伝わるデザインの基本 よい資料を作るためのレイアウトのルール

伝わるデザインの基本 よい資料を作るためのレイアウトのルール