kame's engineer note

技術関連のメモをブログに記録していく

2015-01-01から1年間の記事一覧

php メモリ使用量測定メモ

Rails系の記事ばかりだったが、久々にphpでメモリの使用量を計測する機会があったので、やり方をメモっておく。 phpに割り当てられた現在のメモリ使用量を測定 memory_get_usage() を使用する。 http://php.net/manual/ja/function.memory-get-usage.php

rails 4でransackを使った検索機能を実装した

すごく簡単に検索機能を実装できるというransack。 metasearchというGemの後継らしい。 ちょうど検索を実装する案件があったので、試しに使ってみた。 流れ ransack導入 searchメソッド(DSL)の実装 ransackable_scopesで柔軟な検索実装 前提 Authorモデルの…

Rails ajaxでhogehoge.js.slim(erb)を使わずにHTMLを書き換える

概要 前回の記事では、ajaxを実現するためのファイル構成は以下のようになっていた。 - controllers - photo_controller.rb - views - photo - new.html.slim - new.js.slim - _add_photo_form.html.slim 例えばviews内にjsファイルを配置するのではなく、な…

Railsでhas_manyの複数の画像をajaxを使って動的に一括登録する

概要 表題の通りのことをしたい。 ユーザーモデルと写真モデルは下記の様なhas_manyの関係とする。 ユーザー(user) ==has_many=⇛ 写真(photo) 簡単にやることをまとめると field_forを使用して、複数の子モデルを同時に保存するフォームを作成する。 削除用…

railsで部分にajaxを使う selectbox編

概要 selectboxの内容をajaxで動的に変更したいとき用のメモ。 AとBの2つのselectboxがあるとして、Aのselectboxで値を選択したら、それに連動した値の一覧をBのselectboxに反映するといった動作だ。 例としてAを都道府県、Bを市区町村とする。 これらはhas…

sinatra+bower+gulpでWEBアプリのスケルトンを作る

概要 簡単なWEBアプリを作りたい時にsinatraをよく使っている。 素のままでも便利なのだが、開発効率をもっと向上させるために、色々とカスタマイズした状態のスケルトンを作ることにした。 具体的に言うと下記のようなことをしたい。 slim,sass,coffeeの自…

rails4.2でAuthlogicを使ってみた

railsでユーザー登録機能をつける際は勝手に色々とユーザー登録周りの機能を付けてくれるDeviseを普段よく使ってる。 しかし、少しレールから外れたことをしようとすると、Deviseのソースをoverrideしたり、直接さわらないといけなかったりと結構面倒くさい…

Atomを使ってみた

Atomとは Github製のテキストエディタ。プラグイン等、色々と好みに合わせてカスタマイズができる。SublimeTextとコンセプトとしては似てるけど、Atomは何と無料で使える。 まだ少ししか使ってないが、SublimeTextより良い点だと思うところは 無料である プ…

seedについてまとめてみる

seeds関連ファイルの階層化 初期の状態だとdb/seeds.rbだけを読み込んで実行するいという流れだが、テーブル数や登録するレコード数が多かったりすることで行数が長くなり、管理がしにくくなってしまう。 そのため、下記のようにRailsの環境で階層化し、その…

rails4系 deviseで論理削除を実装する

やりたいこと Deviseにはデフォルトでユーザーの削除機能がついているが、論理削除機能は残念ながらついていない。 userテーブルが多くのリレーション関係を持っている場合は、物理削除だと色々とややこしくなるので、Deviseを使った状態で論理削除を実装で…

rails4系のdeviseにカスタムフィールドを追加する

やりたいこと deviseのモデルにusername等、カスタムフィールドを追加したい場合がる。 rails3系では単純にカラムを追加し、attr_accessibleでアクセスできるようにすればよかったが、rails4系からはattr_accessibleは非推奨になっていて、その代わりにcontr…

rails4.2でエンコードエラー rails incompatible character encodings: ASCII-8BIT and UTF-8

rails4.2で簡単な検索フォームを作ったのだが、テキストフィールドで検索すると下記のエラーが発生。 rails3系の時はこんな現象おきなかったがなぜだろう、、 rails incompatible character encodings: ASCII-8BIT and UTF-8 = form_for @search_form,:url =…

passengerを複数のrubyのバージョンで動かす

rbenvでrubyのバージョン管理をしていて、色々なバージョンでpassengerを動かすとなると、なかなか手のこんだことをしないといけなかったが、passenger4以上からvirtualhostの設定で簡単に対応するrubyのバージョンを切り替えられるようになった。 passenger…

rbenvをシステムワイドに導入する

僕が管理しているVPS(Linux)はrbenvでrubyのバージョン管理を行っている。 しかし、現状では一般ユーザーにrbenvを入れてしまっているため、他のユーザーを追加した際に各ユーザーごとにrbenvを導入する必要がる状態である。 そこで、system wideにrbenvを…

Rails4.1をproductionモードで起動する

Rails4.1系でのproductionモードで起動する手順を簡単にまとめた。 データベースの設定 production用のDB接続情報を追記 default: &default adapter: mysql2 encoding: utf8 pool: 5 timeout: 5000 production: <