rails

ActiveRecordの属性は"="を使わないとDBを更新できない

Ruby on Rails チュートリアル:実例を使って Rails を学ぼうをやっていて気づいたので書いた。rails 4.0.2です。 "="を使わずに更新してみる("sub!"を使ってみる→失敗) #オブジェクトを作る > user1 = User.create(name:"aaa",email:"aaa@example.com") (…

エンタープライズRails読書まとめ

エンタープライズ Rails ―企業ユーザのためのWebアプリケーション設計術作者: Dan Chak,高井直人,笹井崇司出版社/メーカー: オライリージャパン発売日: 2009/07/23メディア: 単行本(ソフトカバー)購入: 36人 クリック: 751回この商品を含むブログ (17件) …

RailRoadでRailsのソースからER図を作成する

soraさんが http://sora2hs.blog70.fc2.com/blog-entry-438.html で Rails2.3の新機能を紹介していますが、その中で[railroad で吐き出した er 図]と言うのが出てきています。RailRoadというのをつかうとRailsのソースからER図を作成できるらしい。 "RailRoa…

「Railsレシピ」を買いました。

なかなか面白いよ。

BLOB値の取り出し方がわからない。

ActiveRecordを使ってバイナリデータをDBに格納したり取り出したりする実験をしたが、格納は簡単にできたけど取り出しの方法がわからない。以下の手順で操作を行ったが取り出したファイルと格納したファイルのサイズが明らかに違っている。テーブルのレイア…

Railsに脆弱性

http://japan.cnet.com/news/sec/story/0,2000056024,20198527,00.htm MixiのRailsコミュで告知されていたのでワタシも早速Update。 gem rails update これだけでネットから最新がインストールされる。うーむ。よくできてるなー。 RubyGemsはRuby本体に標準…

連続更新

以下のようなロジックの場合、2回目の更新は無効になる。 user = User.new(:name => "David") user.save user.name = "koki" user.save #2回目のsaveは内部的にid=0であるレコードへのupdateを発行している。この場合、1回目のsaveのときはinsertなので、Act…

id

id項目はauto_incrementにしないと、ActiveRecordからデータが挿入されたときにnullになってしまう。でもってidがnullであるレコードが複数できる。つまりidの意味が無くなる。 id項目がnot nullの時はエラーになってしまう。 id項目に一意な値をセットする…

sqliteを使用するとき

コネクションを以下のようにする。 ActiveRecord::Base.establish_connection( :adapter => "sqlite3", :dbfile => "/home/koki/test.db" ) :dbfileパラメータを:databeseと勘違いしてちょっとはまった。

属性の値をBooleanとして評価する

属性名? メソッドを使うと属性の値がBooleanとして解釈される。 0(数値),"0"(文字列),"f","false"(文字列),"",nil,false(Rubyのbool型定数)=>false それ以外=>true p user.name #=> "false" p user.name? #=> false p user2.name #=> "David" p user2.name? …

行の削除

1行削除はdeleteメソッド(クラスメソッド)でidを指定する。 User.delete(15) 範囲を渡して複数件削除もできる。 User.delete(12..15)

ID以外を使用した検索

u = User.find_by_name("David") #=> #"David", "id"=>"4", "age"=>"99"}> u = User.find_by_age(40) #=> #"uncle", "id"=>"1", "age"=>"40"}> find_by_属性名(パラメータ)というメソッドを実行すると、 SELECT * FROM テーブル名 WHERE 属性名 = パラメータ…

属性へのアクセス

u = User.find(1) u.name #=> "David" u[:name]#=> "David" アクセサメソッドを使うやり方とハッシュのようにするやり方。 ただし、ハッシュのようなやり方は非推奨。理由は本によると、柔軟性にかけるから、とのこと。 どう柔軟性に欠けるのかもなんか書い…

デフォルトのマッピングルールは

テーブル名=クラス名の複数形が基本。 テーブル名:orders−クラス名:Order 不規則変化もたいていは良きに計らってくれるらしい。 テーブル名:batches−クラス名:Batch テーブル名:data−クラス名:Datum 複数の単語からなる名前の場合は クラス名→大文字…

テーブル名≠クラス名の複数形にしたいとき

class User < ActiveRecord::Base set_table_name "names" endnamesテーブルの1レコードがUserクラスにマッピングされる。

も少し深くおべんきょ

あ。同じサンプルがRails本に書いてあった。 これから熟読。。。せっかくお金出して買ったんだからね。

ActiveRecord楽しい

ルビまの記事などを参考にActiveRecordをさわってる。 http://jp.rubyist.net/magazine/?0006-RubyOnRails rubygemsとrailsがもうインストールされているので、いきなりサンプルを実行。 DBは別のときに作っていたやつを使いまわし。 こんなテーブルを使用し…

RadRails

7/21から有給休暇なのでかなり暇。 Railsのおべんきょがとまっていたので続きをやることにしました。RadRailsのエディタの文字コードはデフォルトだとMS932(ShitJIS)なので、UTF-8に変えてあげる必要がある。 Ajaxを使う場合はUnicode必須らしいので。 や…