1.0.0 1.1.0 1.1.1 1.1.6 1.2.0 1.2.6 2.0.0 2.0.1 2.0.3 2.1.0 2.2.1 2.3.2 2.3.8 3.0.0 3.0.5 3.0.7 3.0.9 3.1.0 3.2.3 3.2.8 3.2.13 4.0.0 4.1.0 4.2.1 説明 配列・ハッシュから選択肢を生成する 使い方 options_for_select(タグの配列 or ハッシュ [, オプション]) 使用できるフォームタグ form_for form_tag オプション オプション説明 例 タグの情報を配列で指定 <%= select_tag 'page[name]', options_for_select([["Railsの基礎", "rails_base"], ["Rubyの基礎", "ruby_base"]]) %> # <select id="page_na
application_controller.rb class ApplicationController < ActionController::Base protect_from_forgery rescue_from ActiveRecord::RecordInvalid, :with => :error_render_method rescue_from ActiveRecord::RecordNotFound, :with => :record_not_found def error_render_method end def record_not_found end end When I run rspec I get this error: uninitialized constant ActiveRecord::RecordInvalid (NameError) I hav
Active Recordのバリデーションとコールバック(Active Record Validations and Callbacks) † このガイドでは、Active Record オブジェクトのライフサイクルへのフックの掛け方を教えます。 データベースに保存される前にオブジェクトの状態を検証をする方法と、 ライフサイクルの特定の時点でカスタム操作を実行する方法を学べるでしょう。 このガイドを読んで、提示された概念を試した後、以下のことが出来るようになっていることを望みます: Active Record のオブジェクトのライフサイクルの理解。 組み込みの Active Record のバリデーションヘルパの使用。 カスタムバリデーションメソッドの作成。 バリデーションのプロセスによって生成されたエラーメッセージの動作。 オブジェクトのライフサイクル内のイベントに応答するコール
こんにちは、鈴木です。 先日、Rails 4.1.0.rc1 がリリースされました。 リリースノートをパラパラを見ていたら ActiveRecord enums という新機能があったので試してみました。 ActiveRecord enums とは 会員のデータを保持する users テーブルを作成して、会員ステータスを保持する status カラムを用意して、その値が 0 なら仮登録、1 なら本登録、2 なら退会済みにしよう、・・・ということって良くありますよね? ActiveRecord enums は、モデルクラスでこんな風に使います。 class User < ActiveRecord::Base # ステータス: temporary (仮登録), active (本登録), resign (退会). enum status: %i(temporary active resign)
CoffeeScriptについて CoffeeScriptとは 公式サイトによると、CoffeeScript is a little language that compiles into JavaScript.(JavaScriptにコンパイルするシンプルな言語です) 簡単に言うとJavaScriptをRubyライクに記述できる言語だと思います。 特徴 文末のセミコロンは不要 ブロックはインデントで表す 「->」はfunctionの略 varは不要 Rubyと同様でreturnは省略可能 コンパイルが必要 JavaScriptに潜む罠をいい感じに回避 出力するJavaScriptが綺麗 railsにおいて Railsでは、Asset Pipelineという仕組みを使って、CoffeeScriptを自動的にコンパイル 拡張子は、「.js.coffee」 フォルダは、「/app/assets
いくつかやりかたがあります。 1. 静的ファイルで十分な場合 public/404.html、public/500.htmlというファイルを置くだけです。ね、かんたんでしょ? 2. レイアウトを使いまわしたい場合 まずはconfig/routes.rbを修正します。 MyApplication::Application.routes.draw do match '*not_found' => 'application#render_404' #この行を追加 end 次にapp/controllers/application_controller.rbに修正を加えましょう。 class ApplicationController < ActionController::Base #以下のコードを追加 rescue_from ActiveRecord::RecordNotFound, :wit
Rails3.2から結構いい感じになったエラーハンドリング Railsは1.xからやっているけど、気に喰わないのがエラーハンドリング周りだった。 特にRoutingエラーを補足する為に各バージョンごとに対応が微妙に違ったりして、毎回調べたりRailsの実装を追っていた記憶がある。 だけどRails3.2から実装された機能で、個人的にはこれで落ち着いたかなと思えた。 既に4が出ているので今更感があるけど、備忘録として書いておく。 Rails4.0.2,Ruby2.0.0で確認しています。 Release Notesでは以下のように書かれている。 Added config.exceptions_app to set the exceptions application invoked by the ShowException middleware when an exception happe
仕事で、Railsプログラムを書いていたとき、 実行するメソッドは同じなんだけど、クラス名だけが違う。例えば、モデルDetailとモデルItemに対してfindメソッドを実行したい。実行するモデルを動的に決めれたら楽なんだけどなぁ。 っていう場面に遭遇して、あれこれ探してみたら、ActiveSupport::Inflectorにconstantizeというメソッドがあることを知りました。 使い方は、簡単。例えば、モデルとしてItemってものを定義していたとき、"Item".constantize.find(1)ってやると、 ruby-1.9.2-p290 :013 > "Item".constantize.find(1) Item Load (0.4ms) SELECT "items".* FROM "items" WHERE "items"."id" = ? LIMIT 1 [["id"
2011年06月14日10:53 Ruby Railsで簡単に日時選択ができるdatetime_selectメソッドの使い方をまとめてみました 最近、日時選択のためによく datetime_select メソッドを利用するのですが、いまいち使い方がわかっていなかったのでオプションをまとめてみます。ちなみに date_select とか time_select みたいなのもあります(たしか)。 以下、Rails 3.0.7 で動作確認を行っています。 基本形(オプション無し)これだけでももちろん使うことができます。だけどこれだけだといろいろと不便なのでその辺はオプションでほげほげするわけです。 = form_for :obj do |f| = f.datetime_select :start_at 月を数字表記にする = form_for :obj do |f| = f.datetime_s
Warning: mysql_real_escape_string(): No such file or directory in /home/sites/heteml/users/n/a/k/nakajijapan/web/nakajijapan.blog/wp-content/plugins/easy-google-syntax-highlighter/easy-google-syntax-highlighter.php on line 50 Warning: mysql_real_escape_string(): A link to the server could not be established in /home/sites/heteml/users/n/a/k/nakajijapan/web/nakajijapan.blog/wp-content/plugins/easy-
web制作をしてて日付や時刻を入力するためのフォームを作ることがよくある。 Railsには年月日時分を自動的に作成してくれるヘルパーメソッドがある。今まで知らずに地道にドロップダウンリストを作成してしまっていた。。 便利なのでまとめておく。 4つのヘルパーメソッドがある モデルに対応したフォーム 単純な入力項目 日付のみ date_select select_date 日時も含む datetime_select select_datetime 使い方 date_select(object_name, method, options = {}, html_options = {}) datetime_select(object_name, method, options = {}, html_options = {}) select_date(date = Date.current, opt
まず、ここまでで一旦整理する。 Time.nowはRubyの組み込みなのでシステムのタイムゾーンしか見ない。OSの時間と常に一致する。Time.localの出力結果もOSのタイムゾーンと一致する。 TimeWithZoneクラスはconfig.time_zoneに左右される。 Ruby組み込みのメソッドで取得したUTCの時間を基準に、設定されているタイムゾーンの時間に変換する。 ActiveRecordのインスタンスに対してアクセサを利用して時間をやり取りする場合はTimeWithZoneで行われる。 仮にTimeクラスを渡しても代入時にTimeWithZoneに変換される。 config.active_record.default_timezoneの設定はDBを読み書きする際に、DBに記録されている時間をTime.utcで読むかTime.localで読むかを設定する。 :utcの場合DB
アプリケーションのI18N対応をする中で出てくるタイムゾーン問題。今回はRails3環境で ActiveRecordのTimezoneの設定をどのようにすべきかまとめてみました。 photo credit: Myxi via photo pin cc Timezoneの問題はOS、DB、Frameworkといろいろ絡みうるので、一つ一つ行きたいと思います。 OSのTimezone Amazon EC2などだったらそれぞれの地域のタイムゾーンで運用しているケースも あるかと思いますが、JST(日本標準時)で運用しているところが多いのではないでしょうか。 $ date Tue Jul 3 12:54:53 JST 2012 $ ls -l /etc/localtime lrwxrwxrwx 1 root root 30 Jul 3 10:51 /etc/localtime -> /usr/sh
TL;DR ActiveRecord::Enumで、安易に値を追加・削除するのは危険。将来の変更に備えて、DBに登録される値をHashで指定しましょう。 class User < ActiveRecord::Base # This is BAD enum authority: [:registrant, :admin] # This is OK enum authority: { registrant: 10, admin: 20 } end 本編 年度も変わりさて心機一転、という季節なのに私の地元は昨日大雪でしたが、皆様いかがお過ごしでしょうか。さて今日は表題の通り、Rails 4.1における目玉のひとつ、ActiveRecord Enumsについてです。 ActiveRecord Enumsとは 例えばUserモデルにauthority(権限)という属性を持たせたい時によくやるのは、D
最近APIサーバ用途でRailsアプリを1個つくったので振り返る。 概要 接続元はiOSやAndroidアプリとか、Webブラウザとか、別のWebアプリケーションとか。1ホストあたり秒間数百リクエスト、平均応答時間10msぐらい。Rails 4.1.0.rc2、Unicorn、Nginxを使ってる。正直Railsは全部入りで重いイメージがあったので何となく平均50ms以内程度であれば良いところだろうと思ってたけど、意外と速い。多分そもそもサーバの性能が良いんだと思う。実装時に気を付けたことは普段の開発と特に変わりない。いつもは大勢でワイワイ開発するものに少し手を加えるということが多いんだけど、今回は珍しく自分一人でつくったから目が行き届いてたのかもしれない。DBへの問合せの効率に気を配るとか、Rubyでの処理の無駄を省くとか、アプリケーションのプロセスに無駄なコードを読み込ませないとか、計
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く