Ruby
すごく簡単に検索機能を実装できるというransack。 metasearchというGemの後継らしい。 ちょうど検索を実装する案件があったので、試しに使ってみた。 流れ ransack導入 searchメソッド(DSL)の実装 ransackable_scopesで柔軟な検索実装 前提 Authorモデルの…
概要 前回の記事では、ajaxを実現するためのファイル構成は以下のようになっていた。 - controllers - photo_controller.rb - views - photo - new.html.slim - new.js.slim - _add_photo_form.html.slim 例えばviews内にjsファイルを配置するのではなく、な…
概要 簡単なWEBアプリを作りたい時にsinatraをよく使っている。 素のままでも便利なのだが、開発効率をもっと向上させるために、色々とカスタマイズした状態のスケルトンを作ることにした。 具体的に言うと下記のようなことをしたい。 slim,sass,coffeeの自…
railsでユーザー登録機能をつける際は勝手に色々とユーザー登録周りの機能を付けてくれるDeviseを普段よく使ってる。 しかし、少しレールから外れたことをしようとすると、Deviseのソースをoverrideしたり、直接さわらないといけなかったりと結構面倒くさい…
seeds関連ファイルの階層化 初期の状態だとdb/seeds.rbだけを読み込んで実行するいという流れだが、テーブル数や登録するレコード数が多かったりすることで行数が長くなり、管理がしにくくなってしまう。 そのため、下記のようにRailsの環境で階層化し、その…
やりたいこと Deviseにはデフォルトでユーザーの削除機能がついているが、論理削除機能は残念ながらついていない。 userテーブルが多くのリレーション関係を持っている場合は、物理削除だと色々とややこしくなるので、Deviseを使った状態で論理削除を実装で…
やりたいこと deviseのモデルにusername等、カスタムフィールドを追加したい場合がる。 rails3系では単純にカラムを追加し、attr_accessibleでアクセスできるようにすればよかったが、rails4系からはattr_accessibleは非推奨になっていて、その代わりにcontr…
rails4.2で簡単な検索フォームを作ったのだが、テキストフィールドで検索すると下記のエラーが発生。 rails3系の時はこんな現象おきなかったがなぜだろう、、 rails incompatible character encodings: ASCII-8BIT and UTF-8 = form_for @search_form,:url =…
rbenvでrubyのバージョン管理をしていて、色々なバージョンでpassengerを動かすとなると、なかなか手のこんだことをしないといけなかったが、passenger4以上からvirtualhostの設定で簡単に対応するrubyのバージョンを切り替えられるようになった。 passenger…
僕が管理しているVPS(Linux)はrbenvでrubyのバージョン管理を行っている。 しかし、現状では一般ユーザーにrbenvを入れてしまっているため、他のユーザーを追加した際に各ユーザーごとにrbenvを導入する必要がる状態である。 そこで、system wideにrbenvを…
Rails4.1系でのproductionモードで起動する手順を簡単にまとめた。 データベースの設定 production用のDB接続情報を追記 default: &default adapter: mysql2 encoding: utf8 pool: 5 timeout: 5000 production: <