ECのウェブ担当者のメモ

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

スポンサーリンク

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

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

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

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

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

f:id:jun9632:20160808150321p:plain

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

auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;


location ^~ /none_basic/ {
         satisfy any;
         allow   all;
}

以上

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

nginx実践入門 (WEB+DB PRESS plus)

nginx実践入門 (WEB+DB PRESS plus)

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

f:id:jun9632:20160804171552p:plain

Amazon PostgresのRDSから dumpを取得して、restoreする方法です。

RDSに限ったことでは無いかもしれませんが、 今回、RDSのデータを元にlocalのDBを作りたかったく その作業メモです。

基本は以下の通りです。

pg_dump -Fc -v -h [endpoint of instance] -U [master username] [database] > [database].dump
createdb [new database name]
pg_restore -c -h [endpoint of instance] -U [master username] -d [new database name] [database].dump

dbに接続できる状態で行います。

createdb [new database name]

の部分は、とりあえずpg_restoreの -dで指定する DBを作ればよいと思います。

create database [new database name];

DBができた状態で、pg_restoreを実行してください

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)

内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)

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

f:id:jun9632:20160804110230p:plain

タイトルの通り日付の文字列からDate型Objectに変換する方法です。

そんなときは、Date.parseが便利で

Date.parse('2017-01-01')

とすると、変換してくれます。

 関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

たのしいRuby 第5版

たのしいRuby 第5版