Rubular is a Ruby-based regular expression editor. It's a handy way to test regular expressions as you write them. To start, enter a regular expression and a test string. Or you can try an example.
オブジェクトがDBに保存される前に、そのデータが正しいかどうかを検証する仕組みをバリデーションといいますが、 RailsでActiveRecordを使ってそれを実現するにあたってよく使いそうなのをまとめます。 以下のメソッドにおいてはバリデーションがトリガされます。 create create! save save! update update! 以下のメソッドにおいてはバリデーションはスキップされます。 decrement! decrement_counter increment! increment_counter toggle! touch update_all update_attribute update_column update_columns update_counters Railsでのバリデーショントリガ Railsではvalid?メソッドを実行するとバリデーションが実
[edit] ! ? # % & | + - * / ^ ' . , < > = ~ $ @ _ {} [] () " : ` \ ; ! !true not 演算子。演算子式/notを参照。 3 != 5 「等しくない」比較演算子。演算子式/notを参照。 def xxx! 「!」はメソッド名の一部です。慣用的に、同名の(! の無い)メソッドに比べてより破壊的な作用をもつメソッド(例: tr と tr!)で使われます。 /xxx/ !~ yyy 正規表現のメソッド =~ の否定。マッチが失敗したらtrueを返します。 ? ?a リテラル/文字列リテラル。長さ 1 の文字列。 def xx? この場合の「?」はメソッド名の一部分です。慣用的に、真偽値を返すタイプのメソッドを示すために使われます。 xx ? yy : zz 演算子式/条件演算子。三項演算子とも呼ばれます。if xx then
<ファン投票で受賞が決まるSFのヒューゴー賞で昨年、「反リベラル」作家の作品が候補リストを独占する異変が起きた。文化的多様性を排除して白人至上主義へと繋がるようなこの動きは、今年の大統領選を予期させる出来事だった> ヒューゴー賞(Hugo Awards)は、世界中のSFファンが注目するSF、ファンタジー、ホラージャンルの重要な賞だ。 受賞作は世界SF大会(ワールドコン、 World Science Fiction Convention)に登録したファンの投票で決まり、大会の間に開催される授賞式で発表される。気取った文芸賞とは異なり、批評家ではなくファンが決める賞なので、必ずといって良いほど面白く、ベストセラーにもなる。そういった点で、とても信頼性がある賞だ。少なくとも、2015年まではそうだった。 ヒューゴー賞の信頼を地に落としたのは、「サッド・パピーズ(Sad Puppies、悲しい子犬
Windowsをメインで使っていた頃は,プログラムのステップ数(行数)をカウントする場合,フリーソフトのコロ助などを使っていた.Linuxの場合,こういった特殊なソフトウェアを使わなくても,コマンドだけでステップ数をカウントすることができる. 例えば,特定のディレクトリに含まれている.cppファイルのコード行数を出力する場合を考える. .cppファイルのステップ数は次のコマンドで求めることができる. find . -name "*.cpp" | xargs wc -l 適当なソースが含まれているディレクトリに対して上記のコマンドを実行したところ,出力結果は以下のようになった. 104 ./release/moc_Read2chThread.cpp 72 ./release/moc_get2chthreadgui.cpp 15 ./main.cpp 337 ./Read2chThread.c
複数ディレクトリをfindで検索する場合、特定のディレクトリを検索対象外にする方法です。 findコマンドの「-prune」と「-o (-or)」オプションの組み合わせで実現することができました。 UNIXの部屋 コマンド検索: find より -prune それ以上ディレクトリを降りない。特定のディレクトリ以下を除外する場合に有用。 http://x68000.q-e-d.net/~68user/unix/pickup?find -o または -or 検索条件を OR で結ぶ。 % find . -name abc -or -type d ⇒ abc という名前のファイル・ディレクトリか、あるいはディレクトリを検索 http://x68000.q-e-d.net/~68user/unix/pickup?find 例)1つのディレクトリを対象外として、ファイルを検索する 「-path ".
Ruby on Rails 7.2.1.1 Module ActiveRecord::Transactions::ClassMethods activerecord/lib/active_record/transactions.rb Active Record Transactions Transactions are protective blocks where SQL statements are only permanent if they can all succeed as one atomic action. The classic example is a transfer between two accounts where you can only have a deposit if the withdrawal succeeded and vice versa. Tr
※Rails公式ドキュメントから、平易な日本語でポイントとプラスαまとめています。(公式ドキュメント: http://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html) Transaction - 失敗→Save前 Transactionは、複数のSQL文を囲んで、そのSQLそれぞれが成功した場合のみに、すべてのSQLの変更を反映するよというもの。典型的な例は銀行口座の例で、片方の口座からの引き落としに成功した時のみ、もう片方の口座にお金がプラスされるよ、みたいなね。 こんな感じで、Transactionはデータベースの統一性をプログラムやdbのエラーから守るもの。一緒に処理されなきゃいけない処理の塊を持ってる時は絶対に使わなきゃいけない。 例えば、以下の例ではkevinの口座からの引き落としに成
begin ActiveRecord::Base.transaction do . . raise 'ロールバックします' end p 'コミット' # トランザクション処理を確定 rescue => e p 'ロールバック' # トランザクション処理を戻す end transactionブロックの中で登録・更新処理を行う場合は、saveやupdateではなく、save!, update!を使用する。 transactionブロックの中で複数のモデルの更新を行った後に例外を発生させると、全部のモデルがロールバックする。 楽観的ロック 「競合は多分起きないだろう」という前提で、データの取得時には何もせず、更新時に競合をチェックする方法。 レコードのバージョン管理を行うため、テーブルにlock_versionカラムを追加する。その際、デフォルト値を0にする。 lock_versionはレコード
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く