読者です 読者をやめる 読者になる 読者になる

Yamakichi’s blog

yamakichiの技術ブログ

MySQL5.7 JSON型の使い方メモ

MySQL5.7から実装されたJSON型 使い方メモJSON型のテーブルを作成する CREATE TABLE `blocks` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(120) NOT NULL, `content` varchar(200) NOT NULL, `meta` json DEFAULT NULL, PRIMARY…

Rubyの配列展開 *[a, b, c]

Rubyの配列展開 array = ["a", "b", "c"] *array # => a # => b # => c arrayのオブジェクトが入った変数の先頭に*(アスタリスク)をつけることでarray[0] array[1] array[2] の出力をしてくれる。 Rubyの中でも地味な機能ではあるけれども便利。筆者はこの機…

Rails kaminariにモンキーパッチをあててmetaタグをいい感じにする。

Railsでページネーションを実装するライブラリ、kaminariに対してモンキーパッチを当てました。 人生初のモンキーパッチでもあったのでやったことをまとめておこうと思います。 なにをやるのか? 環境は、Ruby 2.3.0 Rails 5.0.0 kaminari 0.17.0今回モンキ…

Rails5 に Draper 導入した際にエラーが出た

Rails5を使ってて出たエラーをメモRails5が正式にリリースされてもうすぐ2ヶ月ほど経とうとしています。Ruby on Rails最近新しく作り始めたアプリケーションにRails5を採用して開発を始めました。 そこで開発を効率よく進めていくために色々とGemを導入して…

Rails 複数のカラムに 一意制約 (ユニーク)を設ける

Rails ActiveRecordで複数のカラムに対して一意制約を設ける。複合一意制約複数のカラムの組み合わせがユニークであってほしい場面に遭遇しました。例えば、Siteテーブル Keywordテーブルが存在する時、Keywordテーブルにある site_id と name そして date …

Rubyのあれこれ、

あれこれ 普段Rubyを触っていてこれは学びとして記録しておきたいなと思ったものを紹介していきます。 OpenStruct Rubyには手軽に構造体を作成することができるOpenStructクラスが用意されています。 require 'ostruct' ab = OpenStruct.new ab.foo = 25 p a…

Emacs Magit使い方

Emacs の拡張パッケージ Magitを紹介します。 Magitってなに? MagitとはテキストエディタEmacsの機能を拡張するパッケージの一つです。 Emacs上でGitの操作を行うことができるようになります。github.comこんな感じにEmacs上でGitログを追えたりもします。 …

RubyのブロックとProcと、ときどきlambda

Rubyはほぼ全てがオブジェクトである。 ブロック ブロックとは、 {}もしくはdo...endで定義するもののこと。 ブロックを定義できるのはメソッドを呼び出すときだけ。 メソッドに渡されたブロックはyieldで呼び出される。 def method(a, b) a + yield(a, b) e…

slackからピザの注文に挑戦してみた

slackからピザの注文に挑戦してみた。\ピザ駆動開発/参考記事 qiita.com家入和真さんがQiitaに投稿しているのを見つけて面白そうだと思ってやってみました。 しかもちょうど小腹が空いた時にせっかくだしデリバリーでピザでも食べようかな、と思ったので。…

CI wercker v2の使い方

この記事は2016年2月で動かす場合の使用方法を紹介しています。wercker自体が開発途中で仕様が変わったりするので注意してください。 また、この記事は常時更新して書き換えていきます。よりわかりやすくより読みやすくを目指していくので、読みにくさがあっ…

ブログをちょっぴり変えてみた

ブログのデザインをちょっぴり変えてみました。 何も手を加えずにいたのですが、ちょっといい感じにしようと思いいろいろといじってみました。 前よりは見やすいというか、サイトの雰囲気は良くなったんじゃないかなぁと思います。 ちょくちょく修正を加えて…

クオリティの高いコードを書こう、rubocop

最近、一回りも年が違う先輩のそばでプログラムを書いていてたくさんのことを学ばせてもらってます。 普段はRubyを書いているのですがそのRubyコードを先輩にレビューしてもらうとひどい書き方をしまくっていて笑われてしまいました。笑 ただ動くだけのコー…

docker コマンド

Docekr コマンド一覧Dockerのくじらちゃんを動かすコマンドを紹介します。 docker pull イメージのダウンロード $ docker pull centos: 7 CentOSのすべてのタグのDockerイメージを取得する $ docker pull -a centos aオプションを指定すると、すべてのタグを…

ヨーダ記法について。 スターウォーズ公開記念

ヨーダ記法 if文を書いた際に定数を左辺に書く記法のことをヨーダ記法と言います。 # 普通の書き方 if(star == 10){ return NoYoda; } # ヨーダ記法 if(10 == start){ return YesYoda; } ヨーダ記法を使う理由 ヨーダ記法で書くと、比較(==)を誤って代入(=)…

Dockerのツールについて

Dockerはさまざまなツールや、サービスの総称そんなツールたちをを紹介します。 Docker Engine (Dockerのコア機能) Dockerイメージの生成やコンテナの起動などを行うためのDockerのコア機能, Dockerコマンドの実行や、Dockerfileによるイメージの生成も行い…

Railsで複雑なSQL文を投げたい時に使うArelTable

ActiveRecordについて Railsには標準でActiveRecordと呼ばれる機能が付いています、ORマッパーとも呼ばれ、modelとデータベーステーブルがリンクしていて、オブジェクト指向でデータを扱うことができる機能です。 詳しい話は以下を参照してください。 railsg…

Gitで変更を破棄したい時

Gitでローカルに変更を加えたがそれらすべて破棄して変更前に戻したい。 git checkout ファイル名 これをgitを使っているディレクトリで実行、指定したファイル名へ加えられている変更は破棄される。 特定のファイルだけでなくディレクトリすべてを破棄し、…