Ruby

Railsで簡単バルクインサート

SQLには複数のデータを以下のようにぼぼぼっと登録する機能があります。 INSERT INTO books (columns) VALUES (values), (values), (values); これはバルクインサートと呼ばれて、普通に3回違うデータをINSERTするよりパフォーマンスがよくなります。 場合に…

idと名前を関連付けるformのselectはcollection_selectメソッドを使おう

collection_selectメソッドの存在を見落としていてselectメソッドで名前を取得して、controllerでそれを対応するidに変換してModel#saveしてしまっていた。 そんなときはcollection_selectメソッドがめちゃ便利なので使い方メモっておく。 定義部分はactionv…

booleanの条件分岐でifは使わない

どっちがいいかな... def is_valid? return false if name == "雑種" || name == "その他" true end def is_valid? if name == "雑種" || name == "その他" false else true end end なんて考えてたらたどり着いた以下の記事。 http://qiita.com/taiyop/item…

FactoryGirlで多対多の関連データを一緒に生成する

以下の記事を参考にさせていただきました。 FactoryGirl で多対多のアソシエーションをつくる http://blog.inouetakuya.info/entry/2013/12/28/205008 FactoryGirlsのアソシエーションのとこは以下から。 http://www.rubydoc.info/gems/factory_girl/file/GE…

Single vs Double Quotes in Ruby

Single vs Double Rubyでsingle quoteとdouble quoteを書くかは非常に迷いどころで、Rubyistたちの中でもどっちがメジャー、みたいなのはそこまでないみたい。 Based on everything I've read and a review of Ruby style guides, I would say there is no c…

Railsでのi18nでymlを使った日本語化手順

Rails Guideのi18nについての記事。ざっと目を通してみる。 http://guides.rubyonrails.org/i18n.html i18nという名前はiで始まってnで終わる間に18文字あるのが由来。なんかファンキー。 I18nのもっとも重要なAPI translate # Lookup text translations loc…

ActionMailerの非同期処理をActiveJob+Sidekiqで

この記事がめっちゃ分かりやすいです。ここに従って進めていきます。 http://qiita.com/QUANON/items/09c87787df6b0d287896 1. Redisをインストール Redisをインストールします。 $ brew install redis Redisについては、以下らへんが詳しいと思う。 Redisと…

ActionMailerのHTMLメールに画像を埋め込む

かっこいいメールを作りたくて、ActionMailerのViewで画像を埋め込めないかなーと思って調い。 以下を参考にしました。 メール - Rails ActionMailer 便利小ネタ集 - Qiitaqiita.com メール内にヘルパーを書き込んでも、パスがうまく反映されない。 Rails 4…

RailsアプリからSlackへ通知する

何かのタイミングでRailsで作ったWebアプリからSlackへ通知を出したいので設定してみる。 以下の記事を参考にさせていただきました。 http://qiita.com/ysk_1031/items/f74c8b8274ec6c58520d 手順 slack-apiというgemを導入する gem "slack-api" config/inti…

ディレクトリ内のファイルを一括リサイズするRubyスクリプト

shokaiさんのImageResizeを使わせていただきました。 gist87b2181035ca702354f3

Deviseでログイン状態を用いた振る舞いテストを書く

Everyday RailsのChapter 8「フィーチャスペック」を参考に作ってみます。 フィーチャスペック = 統合テスト モデルとコントローラの単体テスト、テストデータを作成するためのファクトリを全部まとめて、フィーチャテストを行う。 ちなみにコントローラテス…

RailsアプリをHerokuへデプロイするときの手順まとめ

手順簡易まとめ 結構内容とか分かってない部分を理解していきながらやりたいので、簡易の手順だけここにまとめておきます。 rails_12factorをGemfileに追加 DBのgemを追加 Rubyのversionを指定 production環境でprecompileできるか確認 デプロイ DBのmigrati…

RubocopをVimに組み込んで動的にRubyのSyntax Check

Special Thanks http://qiita.com/yuku_t/items/0ac33cea18e10f14e185 Rubocopとは Rubocopは、ruby-style-guideに従ってコーディング規則にのっとってるかどうかをチェックしてくれるgem。 よりよいRubyのコードを書けるようになるだけでなく、チームでの開…

Railsで例外処理403/404を実装してmodule切り分け【実践Rails学習ノート#5】

はじめに 追記@2016/06/22 Railsでの例外処理についてこの後一度真剣に考えてみたので、先に貼っておきます。 totutotu.hatenablog.com 本編 Rails学習ノート続きです。 今回は403 Forbiddenの例外処理を作っていきたいと思います。 おおまかに以下のような…

【実践Rails学習ノート#4】例外処理500を実装する

前回に引き続き実践Ruby on Railsの学習ノートです。 今回は例外処理を行って例外ページに飛ばす、という機能を実装していきます。 以下のような流れで作っていきます。 controllerでraiseして例外を発生させる 共通のcontrollerで例外処理を行う振る舞いと…

バックプロパゲーションとは何なのか-Rubyでニューラルネットワークで学習やってみる#2

ということで前回の続き、バックプロパゲーションを用いたプログラムを実際に動かしてみます。 動作確認 今回はこちらのプログラムを動かしてみることにした。 https://github.com/gbuesing/neural-net-ruby まず、iris data setのデータを読み込んで学習す…

バックプロパゲーションとは何なのか-Rubyでニューラルネットワークで学習やってみる#1

Rubyでニューラルネットワークを使った学習をするバックプロパゲーションのプログラムを試してみたいと思い立ったので記事にメモしておきます。 今回の記事では、その準備ということでまずバックプロパゲーションが何なのかということから振り返ってみたいと…

Sinatraでsassを使う

なんかちょいうまくできなかったのだけど、ここの回答の方法で一発だった。 ruby - How to link a Sass file in a Sinatra app? - Stack Overflow Class: Sass::Plugin::Rackを使う方法です。 さっきのページに使い方も書いてあって、概要は、 Rack middlewa…

実践Rails学習ノート#3【Viewで基礎を作る】

前回に続きまして実践Ruby on Railsの学習ノートの続きです。 今回はViewのデザインをしながらビジュアルの部分をまず固めていくような内容です。 名前空間を分ける このアプリは 開発者 顧客 ユーザ の三者の利用を考えているので、名前空間を分けておきま…

rbenvのRubyのバージョンをzshのプロンプトに表示する

rbenvのRubyのバージョンが表示されてたらlocalで設定したのとかもわかって便利だなぁと思ったので、やってみます。大学の教授がやってるのみてうらやましくなりました。 以下の記事を参考にさせていただきました zsh で rbenv の Ruby のバージョンをプロン…

ガントチャートの使えるプロジェクト管理ツールredmineをHerokuにデプロイする

ここを参考に、まずはherokuにインストールしてみます。 Redmineをherokuにデプロイする - rochefort's blog 夜の間は使わないだろうということで。 git clone git://github.com/redmine/redmine.git cd redmine git checkout 2.1-stable cp config/database…

実践Rails学習ノート#2【RSpecテスト】

前回に引き続き勉強したところをメモしながらやっていこうと思います。 Gemfileにrspecを追加して、 # Gemfile group :development, :test do gem 'rspec-rails', '~> 3.0' end rspecは以下でインストールできます。 $ bundle exec rails generate rspec:ins…

実践Ruby on Rails学習ノート#1初期設定編

これから1日1章くらいのペースで実践Ruby on Railsをやっていこうと思う.まじでこのくらいのペースでやってかないとと焦っています...笑 と言っても仕事優先なので仕事の合間に本気でやるしかないですが... ということで実践RoRは全部で20章という構成にな…

【Sinatra】スマートフォンかどうか判定してviewを切り替える

以下の記事を参考に,Sinatraでsmartphoneからのアクセスかどうかを判定してviewを切り替えるような処理を書いてみました. Ruby: Sinatra で UserAgent みて iOS / Android 判別 | snippets.feb19.jp get '/' do ua = request.user_agent @sp = 0 @isAndro…

Herokuに速攻デプロイするSinatraアプリテンプレートをつくる #3 DB/modelまわり

引き続きHerokuへのデプロイ用最軽量Sinatraアプリテンプレート的なのを作っていきます! 今回は多分最後で,databaseにデータを挿入するフォームとpostの処理を書いてきます. サーバー上のPostgreSQLは動くようになりましたが,ローカルのSQLiteの設定をし…

Herokuに速攻デプロイするSinatraアプリテンプレートをつくる #2 PostgreSQL編

Special Thanks 以下の記事を参考にさせていただきました. Sinatra-ActiverecordをHerokuにPushする http://qiita.com/myokkie/items/6f65db5d53f19d34a27c SinatraからActiveRecord 3を使う(1) マイグレーション http://blog.ruedap.com/2011/04/16/ruby-s…

Herokuに速攻デプロイするSinatraアプリテンプレートをつくる #1

以下の記事に従って,Herokuにデプロイするための最低限のテンプレートをもったSinatraアプリケーションを作成してみようと思います. http://qiita.com/gogotanaka/items/760d4e6ad2b19ff78ff9 以下のリポジトリにおいてます. totzYuta/sinatra-app-templa…

Sinatra+MySQL+ActiveRecordでDatabaseの設定を行う

以下のサイトを参考に、SinatraでのDatabaseの設定を行います。 Sinatra+ActiveRecord+MySQLで、簡単APIサーバ構築 - Qiita 作業的には非常に簡単なのですが忘れるのでw 準備 RubyとMySQLをインストール出来ていない場合はインストールします。 ここが最初…

RubyでクイックソートとRSpecでそのテストを書いてみる

Rubyでクイックソートを書いてみます。 require 'benchmark' class Array def qsort return self if self.size <= 1 mark = self[0] right = Array.new left = Array.new (1..self.size-1).each do |i| if self[i] <= mark left.push(self[i]) else right.pu…

【Sinatra】ponyを使ってコンタクト・メールフォームを作る

ponyのREADMEを参考にしながらSinatraアプリでコンタクトフォームを作ってみる。コンタクトフォームに情報を入力して送信したら、メールが届く仕組み。 benprew/pony · GitHub mail送信用のgem , ponyを使う。 | 毒林檎のblog ルートがPOSTでhttpのリクエス…