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

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 バリデーションでbooleanを必須にしたい

バリデーションでbooleanの属性を必須にしたくてpresenceを使ったらうまくいかなかった。 # ダメな例 validates :flag, :presence => true ※flagはboolean どうやらpresenceは空白チェックを行っており、falseは空白と判定されてしまうようだ。そこで、inclu…

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" …

データを登録した後にページを移動する方法

redirectでページを移動させる。./viewsディレクトリ下に2つのERBファイルichiran.erbとinput.erbを置いておく。test.rbの一部抜粋 get '/' do @items = Item.all erb :ichiran end get '/input' do erb :input end post '/input' do Item.insert(:no => par…

ERBファイルの切り替え方法

ERBの表示画面から異なるERBの表示画面に移動するにはaタグのリンクを使用し、getでaタグで指定したリンク先にERBを表示する。./viewsディレクトリ下に2つのERBファイルichiran.erbとinput.erbを置いておく。test.rbの一部抜粋 get '/' do @items = Item.all…

Sequelでのデータ絞り込みとソート

データの絞り込み(SQLのWHERE)にはfilterを使用する。 複数の絞り込みを行う場合は、filterを列挙する。 また、範囲の絞り込みを行う場合は..または...を使用する。 ..は始点以上終点以下を表し、...は始点以上終点未満を示す。ソート(SQLのORDER BY)を行…

カレントディレクトリのrbファイルをrequireするとLoadErrorになる

下記のようにhello.rbとuse_hello.rbを作成し、同じディレクトリに置いてuse_hello.rbを実行したらエラーになった。 hello.rb def hello print "Hello, ruby." end use_hello.rb require "hello" hello() どうやら、カレントディレクトリからrequireが使えな…

DBのテーブルアクセスに失敗

Sqliteのテーブルを作成し、アクセスしようとしたらエラーが出たのでメモする。 テーブル名の末尾はsに 下記のようなコードを書いたらエラーになった。 #ユーザー管理テーブル class Usertbl < Sequel::Model unless DB.table_exists?(:usertbl) DB.create_t…