paperclip の写真の格納先をS3に変更する

やりたいこと paperclip の写真の格納先をS3にしたい 方法 Paperclip に S3 用のオプションがあるので、それを使う aws-sdk のインストール Gemfile gem 'aws-sdk' paperclip のデフォルトの設定を追加 config/application.rb class Application < Rails::Ap…

Paperclip を使って Rails アプリに画像アップロード機能を追加する

やりたいこと Rails アプリに画像アップロード機能を追加したい 方法 thoughtbot/paperclip を使う paperclip のインストール Gemfile # 次のイテレーションで aws-sdk を使うが、その時に ver2 を使いたいので、Paperclipを最新のものにした gem 'paperclip…

cocoon を使って、1フォームで1対多のモデルを動的に編集できるようにする

やりたいこと Railsで1対多のmodelがあるときに、 親modelのformで子modelを動的に追加したり削除したりしたい 方法 nathanvda/cocoon を使う つくりかた Gemfile gem 'cocoon' Item の scaffold を generate rails g scaffold item name:string price:integ…

過去のcommitを修正したい時は、 `git commit --fixup` と `git rebase --autofixup` を使おう!

git

先に結論 過去のcommitを修正したい時は、 git commit --fixup=#{commit番号} してから、git rebase --autofixup --autofixup オプションは、 git commit --fixup した commit を自動的に fixup してくれる git rebase の fixup は、対象の commit を上の co…

git rebase/merge をそろそろキチンと理解する

git

なんなのかと rebase 品質を落とす、品のない振る舞いをする git rebase つかいみち : ブランチにmasterの変更を取り込む 例えば、こんな感じに、 master と、branch_b がある場合... * ac7957d Add 'd' in a.txt | * 9aa15f9 (refs/heads/branch_b) Add 'c'…

DNSを良くわかっていない自分が浸透問題を理解するまでのはなし

そもそもDNSってなんだっけ? Domain Name System IPアドレスと、ドメイン名( www.google.com とか)の紐付けを行うサーバ DNSサーバは2種類 コンテンツサーバ (権威DNSサーバ) IPアドレスと、ドメイン名の紐付けを回答するサーバ キャッシュサーバ コンテンツ…

Rails高速化のためのパフォーマンスチューニングに役立つツール 8個+α

これは何? レスポンスタイムが遅くて辛いけど原因が特定できないときに役立つツールをまとめてみました Rails以外でも使えるものも一緒くたに書いているけど、気にしない! やらないこと それぞれのツール詳細な説明 気が向いたら個別記事を書く 環境 Rails 4…

2015振り返り

本当は2015年にやりたかった... Keep ニンジャ学会! 自分主体で何かをするということに抵抗が無くなった 素晴らしい内容の本ができて、色々な方に喜んで頂けた リーダーシップについての知見を得た 独断で引っ張って良い。むしろそうすべき 会社で小さいチー…

これだけやれば大丈夫!! 合同誌を作るための主催者チェックリストを作った

これはなに? 2015年の冬コミにて、ニンジャスレイヤーの合同誌「ニンジャ学会」を作りました 各メンバーの活躍により素晴らしい内容の本になり、無事完売もしたのですが、 自分自身、合同誌の取りまとめをするのは初めてで、色々と手間取ることが多かったの…

Amazon Route 53 ってなんぞ? 特徴と料金をメモ

特徴 DNSのSaaS AWS意外のリソースにもルーティングできる 従量課金 高可用性 : 世界中にサーバがある SLAとして、100%の使用可能時間に満たない場合割引が発生する Amazon Route 53 サービスレベルアグリーメント(SLA) | アマゾン ウェブ サービス(AWS …

yumリポジトリにEPELを追加する手順

ダウンロード ここから対象バージョンのepelをダウンロードする http://ftp.riken.jp/Linux/fedora/epel/ 最新のCentOSならば wget http://ftp.riken.jp/Linux/fedora/epel/epel-release-latest-7.noarch.rpm インストール sudo rpm -ivh epel-release-lates…

yumについて理解が進んでいないのでメモ

CentOSでのパッケージ管理についてのお話 用語 RHEL : Red Hat Enterprise Linux yum yum : Yellowdog Updater Modified RPM Package Managerのパッケージを管理するメタパッケージ管理システム RPM? RPM : RPM Package Manager RedHat系OSが使うパッケージ…

AWS Elastic Beanstalkの環境のSWAPをやってみる

環境の作成 dev-env は環境名 eb create dev-env 環境変数 設定 eb setenv SECRET_KEY_BASE=****** -e dev-env 確認 eb printenv dev-env Environment Variables: RACK_ENV = production SECRET_KEY_BASE = ****** RAILS_SKIP_MIGRATIONS = false RAILS_SKIP…

iptables について理解する

iptablesってなんぞ? Linuxに実装されたパケットフィルタ兼NAT NAT? NAT(Network Address Translation) ネットワークアドレス変換 ローカルIPと、グローバルIPの変換を行う ローカルから外部に出るときに、グローバルIPの割当を行う 外部からローカル内の…

AWS Elastic Beanstalk まずは動かしてみる

AWS CLIツールのインストール $ pip install awsebcli Rails環境の用意 $ rails g controller hello index Rails環境上で、EBS初期化 $ eb init リージョンどこにするか聞かれる Select a default region 1) us-east-1 : US East (N. Virginia) 2) us-west-1…

Railsスタイルガイドななめ読み

ruby読んだついでにこっちも読んどく 原文: bbatsov/rails-style-guide 日本語訳: moneyforward/rails-style-guide Routing RESTfulなresourceにアクションを追加する場合、member と collection を利用する #config/routes.rb resources :subscriptions do …

rubyスタイルガイドななめ読み

rubocopを使うに当たって把握しておく 知らなかったこと/よさ気なところをメモ ソース 原文: bbatsov/ruby-style-guide 日本語訳: ruby-style-guide/README.ja.md at japanese レイアウト {の前後、}の前にはスペース [1, 2, 3].each { |e| puts e } メソッ…

bundler を使っているプロジェクトに自分だけが使いたいgemを入れる方法

自分は便利だから使いたいけど、他の人にまで強制するのはなんだなーって思うgemを開発時に使いたい時どうするかメモ 概要 環境変数BUNDLE_GEMFILEで使用するGemfileを設定できるので、個人用のGemfileを用意する 前提 direnv/direnvを使ってること やりかた…

Rails newした後Rubocopでやること色々

Rubocopって何? bbatsov/rubocop Rubyの静的コード解析器 ruby-style-guideを遵守させる 問題点について自動的に修正してくれる Rubocop入れると何が良いの? ruby-style-guideという標準的なコーディングスタイルガイドにコードが準拠する 可読性up 不穏なコ…

CircleCIをRailsで使う

CircleCIってなに? SaaSのCIツール SasS Software as a Service 必要な機能だけサービスとして切り出したソフトウェア インターネット経由でサービスを提供するのが一般的 CI Continuous Integration 継続的インテグレーション ビルドやテストを継続的に実行…

MVCのおさらいと、RailsのMVCについて説明する

先にまとめ RailsのMVCと原義のMVCは異なる ビジネスロジックはModelに実装する Skinny Controller, Fat Model RailsにはFat Modelをリファクタリングする仕組みが色々あるよ MVCの目的 コードの再利用性と関心事の分離 コードの再利用性 : ビジネスロジック…

Rails の development 環境で使えそうなgemをまとめる

ざっくりとした覚え書き ログ関係 rails-flog ログのParametersやSQLを整形してくれる quiet_assets 動的なアセットパイプラインの生成時に出力されるログを消してくれる pry関係 こっちでも解説してる → pryとそのプラグイン色々メモ - kasei_sanのブログ p…

パーフェクトRails 9章 より実践的なモデルの使い方(9-1〜9-2)

パーフェクト Ruby on Rails作者: すがわらまさのり,前島真一,近藤宇智朗,橋立友宏出版社/メーカー: 技術評論社発売日: 2014/06/06メディア: 大型本この商品を含むブログ (8件) を見る Rails環境について 本の環境 : Rails4.1.1 本記事執筆時の環境 : Rails4…

ActiveRecored の change_column_default と、change_column_null を覚えたのでメモ

Rails4.2の話 それぞれマイグレーションで使う change_column_default カラムのデフォルト値を設定 change_column_default :table_name, :column_name, default_value 不可逆 これを使う場合は、def up と、def down を定義する必要がある change_column_nul…

Turbolinksについて調べてみた

先にまとめ TurbolinksWay(後述)にそって作ればすごい機能 独自実装でリッチなサイトを既に作っている場合、競合地獄がまってるよ!! よくこんなの標準機能にのっけたな Turbolinksって何? Rails4.0から採用された、レンダリング高速化のためのgem ActionPack…

Aseets Pipeline についてまとめた

Aseets Pipeline ってなに? Rails3.1から実装 Rails4から別gemに sprockets-rails sprockets(および、sprockets-rails)を使って、以下の処理を行う CoffeeScriptや、SCSS等の高級言語を変換 マニフェスト(後述)に従って、js, css を1ファイルにまとめる ファ…

Rails4.1 から入ったSpringって何よ?

概要 rails c 等を叩く時に、毎回Railsの初期化を行わなくなるので、開発速度が向上するよ!! Springサーバが起動して、変更を監視して必要に応じて再ロードする Rails4.1以降は標準で入っていて、勝手に起動したり終了したりしてる http://railsguides.jp/4_…

ざっくりRailsの各バージョンの流れ

Rubyの推奨/必須バージョンの推移 Rails 3 : 1.8.7以降必須 Rails 3.2 : 1.8.7最終ブランチ Rails 4 : 1.9.3以上必須。2.0推奨 Rails 5 : 2.2.1以上必須 シンボルのガーベージコレクトを宛てにしているらしい 今更ながらだけど、4系は2.0推奨なのね Railsガ…

Railsの各コンポーネントについてざっくり理解する

はじめに Rails4.2系の話です いろいろある Railtie ActionMailer ActionPack ActionView ActiveJob ActiveModel ActiveRecord ActiveSupport Railtie Railsの中核部分 Railtieに基づいたプラグインの組み合わせで、Rails機能を拡張できる ActionController…

Railsのライフサイクルがよくわかってなかったので調べた

今度はRailsについて バージョニング Rubyと同じく、セマンティックバージョニング → Ruby on Rails のメンテナンスポリシー | Rails ガイド メジャー : 重大性が高い変更 マイナー : 新機能を追加。API変更もありえる 大きな変更を行う場合、非推奨通知を出…