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

Swift と Rails で iOS アプリ開発

フロントエンドを Swift で、バックエンドを Rails でアプリを開発してみます。 Web API 側実装 grape という gem を使って Web API を作っていきます。 以下の記事も参考にしてみてください。 Grape で Web API 開発 - kzy52's blog Grape::Entity の使い方…

Rails でオートコンプリート機能を実装する

Rails で typeahead ライブラリを使ってオートコンプリート検索を実装する方法です。 twitter/typeahead.js twitter/typeahead.js · GitHub こんな感じ。 環境 rails-assets-typehead.js 0.10.5 typehead gem を追加する # Gemfile # 追加 source 'https://r…

ActiveRecord の結果からフィクスチャを生成する

ActiveRecord の結果からフィクスチャを生成する方法です。 $ rails c > table_name = User.table_name > records = User.all > > File.open("#{table_name}.yml", 'w') do |file| > records.map(&:attributes).each.with_index(1) do |record, i| > file.wr…

Rails のフォームビルダーをカスタマイズする

Ruby on Rails Guides にフォームビルダーをカスタマイズする方法が載っていたので試してみた。 # lib/labelling_form_builder.rb class LabellingFormBuilder < ActionView::Helpers::FormBuilder def text_field(attribute, options={}) label(attribute) …

Rails でタイムゾーンのセレクトボックスを生成する

<%= time_zone_select(:user, :time_zone, nil, include_blank: true) %>

Rails のログでパラメータをフィルタする

Started POST "/users" for 127.0.0.1 at 2014-11-28 23:00:59 +0900 Processing by UsersController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"B2eI4UTdaJbQ0WOSIdqPrybKJA1iKEdZPQoIXze+anQ=", "user"=>{"email"=>"user1@example.…

Asset Pipeline のロードパスの一覧を確認する

$ rails c > y Rails.application.config.assets.paths --- - "/Users/username/workspace/personal/demo/app/assets/images" - "/Users/username/workspace/personal/demo/app/assets/javascripts" - "/Users/username/workspace/personal/demo/app/assets/…

Rails の I18n で読み込まれている YAML ファイルを確認する

$ rails c > y I18n.load_path --- - "/Users/username/.rbenv/versions/2.1.4/gemsets/demo/gems/activesupport-4.1.8/lib/active_support/locale/en.yml" - "/Users/username/.rbenv/versions/2.1.4/gemsets/demo/gems/activemodel-4.1.8/lib/active_model…

rails console まとめ

Rails で開発していると必ず使用する rails console 。 便利な機能が色々あるのでまとめてみました。 環境を指定して起動する $ rails console [-e, --environment=name] $ rails console -e test $ rails console --environment=test # デフォルトは develo…

Rails の link_to メソッドでアンカーリンクを作成する

anchor オプションを使用することでアンカーリンクを作成することができる。 <%= link_to 'ユーザーA', user_path(@user, anchor: :profile) %> 以下のようなリンクが生成される。 <a href="/users/1#profile">ユーザーA</a>

Rails のマイグレーションクラスの命名ルール

今までマイグレーションクラスの命名がプロジェクトによってばらばらだったので命名ルールをまとめてみました。 マイグレーションクラスの命名ルール 種別 クラス名 ケース テーブル作成 CreateUsers usersテーブルを作成する場合 テーブル削除 DropUsers us…

Grape::Entity の使い方

Grape で Web API 開発 - kzy52's blog Grape で Web API 開発 - kzy52's blog 前回は Jbuilder を使いましたが 今回はGrape::Entityというgemを使ってJSONフォーマットを実装していきたいと思います。 ディレクトリ構成とルーティングは以下のようになる予…

Grape で Web API 開発

Grape は RESTful な API を構築するためのマイクロフレームワークです。 今回は Grape を使って簡単な Web API を作っていきます。 intridea/grape intridea/grape · GitHub [2015/03/07] ファイルの配置を変更しました。変更点は GitHub をご確認ください…

RailsプロジェクトでApache JMeterを使ってみる

Apache JMeter - Apache JMeter™ Apache JMeter はパフォーマンス計測用のツールです。 Webアプリケーションのテストをするための様々な機能が用意されているので、複雑なテストを行うことができます。 今回はRailsアプリケーションのパフォーマンス計測をし…

Railsプロジェクトでcassandra gemを少しだけ使いやすくする

cassandra-rb/cassandra cassandra-rb/cassandra · GitHub Railsプロジェクトでcassandra gemを少しだけ使いやすくする。 本当に少しだけ...。 # lib/cassandra_ext.rb class CassandraExt < Cassandra include Singleton def initialize config = YAML.load…

RailsプロジェクトでMySQLとMongoDBを共存させる

RailsのプロジェクトでMySQLとMongoDBを共存させる方法のメモ。 基本はMySQLと使い一部MongoDBを使うようにする。 プロジェクトを作成する $ rails new sample_app -d mysql Mongoidをインストールする # Gemfile gem "mongoid" $ bundle install Mongoidの…

【Rails】AuthlogicでLoadError (cannot load such file -- scrypt) が出た場合の対処方法

Authlogic 3.4.2でエラーが発生するようになった。 LoadError (cannot load such file -- scrypt): Authlogic 3.4.0で暗号化方式がSHA512からSCryptに変わったとのこと。 # Gemfile gem 'authlogic' gem 'scrypt' # 追加 $ bundle install でエラーは出なく…

bundlerで管理しているRailsをアップデートする

Gemfile内のrailsのversionをあげる # Gemfile gem 'rails', 'x.x.x' Railsのアップデート $ bundle update rails 設定ファイルを最新版にする $ bundle exec rake rails:update

Nginx + Unicorn で Redmine をインストールする

Redmineのバージョンは2.5です。 Ruby, MySQL, Nginxのインストール http://kzy52.com/entry/2013/05/03/022925 Rubyのバージョンは2.0にすること ImageMagickをインストールする $ sudo yum -y install ImageMagick ImageMagick-devel ソースコードを取得す…

【Rails】staging 環境用の設定ファイルを追加する

staging に限らずデフォルトで用意されている環境(development, production, test) 以外の環境を用意する場合、 設定ファイルを単純にコピーしてもいいのだが、DRYじゃないので diaspora を参考に以下のようにしてみた。 # config/environments/staging.rb r…

【Rails】asset pipelineのログを出力しないようにする

Railsはデフォルトだと以下の用に asset pipeline のログが出力されてしまう。 邪魔なので出力させないようにする。 Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2014-01-18 15:19:00 +0900 Started GET "/assets/jquery.ui.core.css?bo…

【Rails】backup というgemを使いファイルやデータベースのバックアップをとる

backup という gem を使いファイルやデータベースのバックアップをとる手順を紹介したいと思います。 https://github.com/meskyanichi/backup https://github.com/meskyanichi/backup/wiki インストールする $ gem install backup $ rbenv rehash $ mkdir ~/…

【Rails】 RailsでBasic認証を設定する

Rails 側で設定する場合 # app/controllers/application_controller.rb class ApplicationController < ActionController::Base before_action :basic_authentication if Rails.env.production? private def basic_authentication authenticate_or_request_w…

【Rails】 FactoryGirlでCarrierWaveのイメージデータを作成する

FactoryGirlでCarrierWaveのイメージデータの作成方法についてメモしておく。 テスト用のデータ「spec/support/files/rails.png」 を配置する(場所はどこでもいい) # spec/factories/users.rb FactoryGirl.define do factory :user do sequence(:email) { |n…

【Rails】RailsでColorboxを使ってみた

Colorboxはモーダルを開いて画像を拡大表示したりすることができるjQueryのPluginです。 今回はColorbox用のgemを使わずに導入してみたいと思います。 1. 以下のページからcolorbox本体をダウンロードしてきます。 http://www.jacklmoore.com/colorbox/ 2. …

【Rails】Capistranoで「fatal: Could not parse object」エラー

いつも通り以下コマンドを実行したら こんなエラーが。 $ cap deploy ... fatal: Could not parse object 'ce37f2ad983e7d43f5b190c620945d0731e59d2f'. ... デプロイ先のサーバーに入って $ cd [デプロイ先のパス]/shared $ rm -rf cached-copy/ で解決。 s…

【Rails】本番環境(WebサーバーはNginx)で font-awesome のアイコンが表示されない

Font Awesome を使うとWebページ上に簡単にアイコンを表示させることができる。 # Gemfile gem 'font-awesome-rails' $ bundle install # app/assets/application.css /* *= require font-awesome */ ビューで <h1><i class="icon-camera-retro"></i>&nbsp;Camera</h1> とかやるとアイコンが表示される…

【Rails】 settingslogic で改行を含む定数を管理する

導入方法 https://github.com/binarylogic/settingslogic settingslogic で定数を管理しているけど、改行ある時どうするんだっけ?となったので調べてみた。 YAMLについて知らなすぎだね。 改行を含む文字列を表現する # config/application.yml defaults: &…

【Rails】Authlogic + OmniAuth でソーシャル認証を実装する

Authlogicの導入は以下記事を参考にしてください。 【Rails】 Authlogicでユーザー認証機能 gem を追加 # Gemfile gem 'omniauth' gem 'omniauth-twitter' gem 'omniauth-facebook' 認証するには Twitter/Facebook Developers にアプリを登録して認証情報を…

【Rails】fields_for と accepts_nested_attributes_for

Railsでネストした関連先のテーブルもまとめて保存したい時に使うのが accepts_nested_attributes_forです。すごく便利。 Railsのソースコードを見ながら使い方をまとめてみました。 コンソールから色々試してみる 定義する class User < ActiveRecord::Base…

【Rails】 DBに楽観的ロックをかける

排他制御には「楽観的ロック」と「悲観的ロック」があります。ユーザーAとユーザーBがいた場合・楽観的ロック ユーザーA、ユーザーB共に編集画面を開くことができるが、ユーザーAが更新した場合ユーザーBの更新は失敗する。・悲観的ロック ユーザーAが編集画…

【Rails】 Authlogicでパスワードリマインダーを実装する

ユーザーがパスワードを忘れてしまった際にパスワードを再設定できる機能を実装してみます。パスワードリマインダーには色々な実装方法がありますが、 今回は登録されているメールアドレスにパスワード再設定用のURLを送信する方法で実装します。・Authlogic…

【Rails】 application.jsやapplication.css以外のファイルをプリコンパイル対象に設定したい場合

admin.jsとadmin.cssをプリコンパイル対象にする。 # config/environments/production.rb config.assets.precompile += %w( admin.js admin.css )$ bundle exec rake assets:precompile RAILS_ENV=productionこれでプリコンパイル対象に入るかと思っていたが…

【Rails】 state_machineを使って状態を管理する

https://github.com/pluginaweek/state_machine今回はstate_machineを使ってUserモデルに状態を管理する機能を追加します。 インストールする # Gemfile gem 'state_machine' $ bundle install 使い方 # app/models/user.rb class User < ActiveRecord::Base…

Mac + Rails 環境構築メモ

Ruby のインストール ・rbenv, ruby-build, rbenv-gemset をインストールする $ brew install rbenv ruby-build rbenv-gemset・openssl, readline をインストールする $ brew install openssl $ brew install readline・パスを通すzsh の場合 # ~/.zshenv ex…

【Rails】 Authlogicでユーザー認証機能

ユーザー登録機能を作成する ・モデルを作成する $ rails g model User・マイグレーションファイルを修正する # db/migrate/20130125121017_create_users.rb class CreateUsers < ActiveRecord::Migration def change create_table :users do |t| t.string :…