Railsドキュメント

廃止

実行前にリクエストのバリデーション

説明

アクションの実行前にチェック

使い方

verify(引数.., オプション引数)

オプション

オプション 説明
   
:params パラメータがあるか
:session セッションにキーがあるか
:flash フラッシュの中に指摘したキーのデータあるか
:method HTTPのメソッドが指定したものか
:xhr アクションがAjaxから呼ばれたか
:add_flash フラッシュにデータを追加
:add_headers HTTPのヘッダに「カラム名:値」を追加
:redirect_to 別のアクションにリダイレクト
:render 別のアクションのテンプレートでレンダリング
:only 適用するアクション
:except 適応しないアクション

セッションにuser_idがない場合は、indexにリダイレクト

verify session: "user_id", redirect_to: { action: "index" }

POSTでアクセスしていない場合は、indexにリダイレクト

verify method: :post, redirect_to: { action: "index" }

create, update, deleteアクション以外は、indexにリダイレクト

verify only: [:create, :update, :delete], :redirect_to { action: "index" }

ソースコード

キャッシュストアの設定

説明

キャッシュストアを設定

使い方

config.cache_store = キャッシュの種類

キャッシュの種類

キャッシュの種類 説明
:memory_store プロセス内のメモリ
:file_store ファイルシステム
:mem_cache_store memcached
:null_store キャッスをしない

memcachedに保存

config.cache_store = :mem_cache_store

リクエストの前に実行する処理

説明

リクエストの前に実行する処理

使い方

ActionDispatch::Callbacks.before

 ActionDispatch::Callbacks.before do
  if Object.const_defined?(:Example)
    if Example.const_defined?(:MyClass)
      Example.send(:remove_const, :MyClass)
     end
  end

  require 'example/my_class'
end

属性ハッシュを指定して更新

説明

条件に一致するモデルオブジェクトを更新

使い方

モデル.update_attributes(属性名, 値)

複数の項目を一度に変更・保存するメソッド

@user.update_attributes(:name, "hoge")

更新メソッドの種類

メソッド バリデーションの有無
update
update_all ×
update_attributes
update_attribute ×

ソースコード

全てのエラーメッセージのキーを取得

説明

全てのエラーメッセージのキーを取得

使い方

モデル.errors.keys()

person.errors.messages
#=> {:name=>["cannot be nil", "must be specified"]}
person.errors.keys
#=> [:name]

ソースコード

与えられたキー以外のすべてのエラーを削除

説明

与えられたキー以外のすべてのエラーを削除

使い方

モデル.errors.slice!(キー..)

person.errors.keys
#=> [:name, :age, :gender, :city]
person.errors.slice!(:age, :gender)
#=> { :name=>["cannot be nil"], :city=>["cannot be nil"] }
person.errors.keys
#=> [:age, :gender]

ソースコード

Errorsのハッシュのxml形式を取得

説明

Errorsのハッシュのxml形式を取得

使い方

モデル.errors.to_xml(オプション={})

person.errors.add(:name, :blank, message: "can't be blank")
person.errors.add(:name, :not_specified, message: "must be specified")
person.errors.to_xml
#=>
#  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
#  <errors>
#    <error>name can't be blank</error>
#    <error>name must be specified</error>
#  </errors>

ソースコード

すべてのエラーメッセージを取得

説明

すべてのエラーメッセージを取得

使い方

モデル.errors.values()

person.errors.messages
#=> {:name=>["cannot be nil", "must be specified"]}
person.errors.values
#=> [["cannot be nil", "must be specified"]]

ソースコード