Ruby

Rails4 noticeの書き方(Rails3のflash)

redirect_toでRails3のflashを使ってnoticeを書きたかったが、Rails4ではうまくいかなかった。Rails4では、flashを使わずに下記のように書くようだ。 # コントローラ redirect_to users_path, :notice => "表示したいメッセージ" # ビュー <%= notice %> 参…

Rails4 作成時と更新時でバリデーションを分ける

作成時と更新時でバリデーションを分けたかったので、メモ。作成時と更新時でバリデーションを分けるにはonを使用する。 # 作成時のみチェック validates :password, :on => :create, # 新規作成時のみチェック :presence => true, # 必須 :length => { :in …

Rails4 任意のルートを定義

Rails4で任意のルートを定義したので、メモ。「…/login/グループ名」というパスでグループ毎のログイン画面を作りたかった。 「…/login/グループ名」というパスを作成するために、ルーティングの設定をしようとしたら、matchはRails4からなくなっていたので…

Rails4 管理用画面の作り方のメモ

管理用画面を作ってみた。事前準備として、deviseで一般ユーザーuserと管理者ユーザーadminを作成しておく。Gemfileに下記のように記述する。 gem "devise" コマンドプロンプトでbundle installを実行する。 bundle insatall コマンドプロンプトで下記を実行…

「bundle install」でgemをインストールするディレクトリを指定する

「bundle install」でgemをインストールするディレクトリを指定する。 コマンドプロンプトでディレクトリを指定してbundle installを実行する。 今回はvendor/bundleにインストールします。 bundle install --path vendor/bundle すると、vendor/bundleにgem…

Ruby on Rails3 Bootstrapをインストール(gem)

Bootstrapのgemをインストールする。Gemfileに下記を追記する。 gem "bootstrap-sass" コマンドプロンプトで下記を実行する。 bundle install app\assets\stylesheetsにbootstrap_load.css.scssを作成し、下記を記載する。 @import "bootstrap"; app\assets\…

Ruby on Rails3 rspecによるテストのメモ

repecでテストをするための方法をメモしておく。Gemfileに下記のように追記する。 group :development, :test do gem "rspec-rails" endコマンドプロンプトで下記を実行する。 bundle install コマンドプロンプトで下記を実行し、specフォルダ等を作成する。…

Herokuで日本語化されない(TeraPad)

ローカルでは日本語化がうまくいっていたのに、Herokuだと日本語化されていない。config\application.rbに下記のように記述もしている config.i18n.default_locale = :ja config.i18n.locale = :ja コマンドプロンプトでHerokuに言語も設定した。 heroku con…

N+1問題の対策のため、「Bullet」をインストール

N+1問題の対策のため、「Bullet」をインストールした。BulletはN+1問題を検出してくれます。[環境] Windows8 Ruby 1.9.3(p125) Ruby on Rails 3.2.9 Gemfileに下記のように記述する。 group :development do # N+1問題の警告を出力 gem "bullet" end コマン…

データベースにインデックスを追加

データベースにインデックスを追加したので、メモ。コマンドプロンプトでマイグレーションファイルを作成する。 rails g migration AddIndexToTable ※AddIndexToTableは任意のファイル名\db\migrationに20130408??????_add_index_to_tableのように日付等が先…

Ruby on Rails3 rspecによるdeviseを使ったコントローラーのテスト

rspecによるdeviseを使ったコントローラーのテストに手こずったのでメモ。[環境] Windows8 Ruby 1.9.3(p125) Ruby on Rails 3.2.9 devise 2.2.3 factory_girl_rails 1.4.0 rspec-rails 2.13.0 spec\supportにcontroller_macros.rbを追加し、下記のように記述…

Ruby on Rails3 Bootstrapをインストール

BootstrapからBootstrapをダウンロードする。圧縮ファイルを解凍し、vender\assetsにbootstrapフォルダを置く。app\assets\javascripts\application.jsに下記のようにbootstrapのパスを追記する。 //= require jquery //= require jquery_ujs //= require ..…

コントローラーでバリデーションのエラーメッセージ追加

コントローラーで、バリデーションのエラーメッセージを追加したかった。URLをブックマークするときに、存在しないURLをエラーとしたかったからだ。コントローラーに下記のように記載する。 @bookmark = Bookmark.new @bookmark.errors.add(:url, "は存在し…

NokogiriでHTMLのタイトル取得

HTML解析用に「Nokogiri」をインストールし、HTMLのタイトルを取得した。Gemfileに下記のように記述する。 gem "nokogiri" コマンドプロンプトでbundle installを実行する。 bundle insatall 下記のようにソースに書いて、タイトルを取り出した。 require 'o…

Ruby on Rails3 画像ファイルアップロード用に「Carrierwave」をインストール

画像ファイルアップロード用に「Carrierwave」をインストールした。[環境] Windows8 Ruby 1.9.3(p125) Ruby on Rails 3.2.9 Gemfileに下記のように記述する。 gem "carrierwave", "~> 0.8.0" コマンドプロンプトでbundle installを実行する。 bundle insatal…

Ruby on Rails3 ユーザー認証用に「Devise」をインストール

ユーザー認証用に「Devise」をインストールした。[環境] Windows8 Ruby 1.9.3(p125) Ruby on Rails 3.2.9 Gemfileに下記のように記述する。 gem "devise" コマンドプロンプトでbundle installを実行する。 bundle insatall コマンドプロンプトで下記を実行す…

Ruby on Rails3 一覧を月次で表示できるようにした

レシート一覧を月ごとにも表示したかったので、ルーティングについて調べてみた。[環境] Windows8 Ruby 1.9.3(p125) Ruby on Rails 3.2.9 config\routes.rbに下記のように記載する。 match "receipts/:month", :controller => :receipts, :action => :index,…

Ruby on Rails3 libにファイルを追加したが、自動で読み込まれなくて困った

libにファイルを追加しコントローラからそのファイルのメソッドを使おうとしたら、読み込めなくて困った。[環境] Windows8 Ruby 1.9.3(p125) Ruby on Rails 3.2.9 libフォルダの直下にsub_account.rbファイルを追加し、その中にSubAccountクラスを定義。 Acc…

Ruby on Rails コールバックの使い方

ユーザー作成後に、システム既定のデータを登録したかった。[環境] Windows8 Ruby 1.9.3(p125) Ruby on Rails 3.2.9 ユーザーのmodelでコールバックを使用する。 ユーザーの新規登録時にのみシステム既定のデータを登録したかったので、コールバック「after_…

Ruby on Rails form_forでコントローラを指定する

fooのモデル、ビュー、コントローラを作成し、barのビュー、コントローラを作成した。 barのビュー「edit」でfooの更新を行いたかった。従来の書き方ではbarのビュー「edit」からfooのコントローラが呼ばれてしまった。 barのビュー「edit」にbarのコントロ…

Ruby on Rails 複数のチェックボックスで1つも選ばれていないときにエラーにするためのバリデーション

複数のチェックボックスで1つも選択されていないときにエラーになるようバリデーションの設定をする。[環境] Windows8 Ruby 1.9.3(p125) Ruby on Rails 3.2.9 ①モデルにアクセサメソッドを追加し、バリデーションを設定する チェックボックスでケーキ、クッ…

Ruby on Rails 列の追加・削除

データベースにテーブルを作った直後に列が間違っていたことに気付いた。 列の追加と削除の方法を調べたのでメモ。①列を追加するマイグレーションファイルを作成 コマンドプロンプトで下記のようなコマンドを実行する。 rails g migration クラス名 列名:デ…

Ruby on Rails 単体テスト

初めて単体テストを書いてみる。①rails既定のデータ登録用フォルダを削除 \test\fixturesフォルダを削除する。 ②factry_girlのインストール Gemfileの一番下に下記を記述する。 group :test do gem 'factory_girl_rails', '~> 1.4.0' end コマンドプロンプト…

Ruby on Rails 部分テンプレート

ログインしていないときにサイドバーにログインフォームを表示し、ログイン時にヘッダーにログアウト機能を設定、ついでにフッターもつけてみた。 ①application.html.erbのbodyを下記のように修正する \app\views\layouts\application.html.erb <body> <div id="container"> <% if curr</div></body>…

Ruby on Rails ルーティング

resourcesとresourceの違いで混乱したので、メモ。 1.resourcesメソッド リソースとは、コントローラが扱う対象に名前を付けたもの。routes.rbに下記のように記述すると、リソース名を設定できる resources :リソース名の複数形 たとえば、顧客情報をリソー…

Ruby on Rails コントローラの削除の仕方のメモ

ログイン画面を作成するときに、コントローラの名前の指定を単数形にしてしまった。コントローラの削除の仕方をメモしておく。 rails destroy controller コントローラ名 今回実行したのは下記のコマンド rails destroy controller login その後、下記のコマ…

Ruby on Rails ログイン画面の作成

下記のページを参考にログイン画面を作ってみた。 Running Cadence: Ruby on Rails3.2でログイン機能を実装する。 アンドロイド・アミーゴ・Rails Ruby on Railsログイン機能 KENJIRO LIFE: Ruby on Rails の flash 変数[環境] Windows8 Ruby 1.9.3(p125) Ru…

Ruby on Rails トップページの作成

[環境] Windows8 Ruby 1.9.3(p125) Ruby on Rails 3.2.9①コマンドプロンプトでRailsのプロジェクトを作成する。 ここではlessonというプロジェクトを作成する。 rails new lesson ②コマンドプロンプトからトップコントローラとINDEXのビューを生成する。 rai…

【Windows8】ExecJS::RuntimeErrorの対策メモ

Windows8のマシンでRubyのプロジェクトを実行したら、ExecJS::RuntimeErrorが出た。railsをアップデートしたり、bundle updateでgemのアップデートを実行しても解決しなかった。javascriptのエンジンが入っていないためエラーになっているようだ。そこで、マ…

正規表現で数値かどうか判定する

正規表現で数値かどうか判定するinputが整数かどうか判定する if (/^[+-]?[0-9]+$/ =~ input) print "整数\n" else print "整数ではない\n" end inputが整数または小数かどうか判定する if (/^[+-]?[0-9]*[\.]?[0-9]+$/ =~ input) print "整数または小数\n" …