hiyoko-programingの日記

プログラミングを勉強したてのひよっ子。   エンジニア目指して勉強中。

Rails Drill 問題3

必要となる知識

newメソッドだけでは、インスタンスは生成されるものの、テーブルには保存されない。そのため、saveメソッドを用いる必要があるが、createメソッドを使えばnewsaveを同時に行ってくれる。createメソッドは、newメソッドと同様に引数でカラムを指定することで値をセットすることができる。

 「newメソッド」、「saveメソッド」を使わずに以下の条件でインスタンスを生成し、保存する。

カラム
textカラム 「i am happy boy!」という文字列
imageカラム 「http:://happy_boy.jpg」という文字列
user_idカラム 1

実行例

コンソール
1
2
pry(main)> #Tweetモデルのインスタンスを生成し、保存するコマンドを打ってください。
=> #<Tweet id: 8,  image: "http:://happy_boy.jpg", text: "i am happy boy!", created_at: "2015-01-12 11:53:49", updated_at: "2015-01-19 08:36:55", user_id: 1>

解説

解答例
1
2
pry(main)> Tweet.create(text: "i am happy boy!", image: "http:://happy_boy.jpg", user_id: 1)
=> #<Tweet id: 8, image: "http:://happy_boy.jpg", text: "i am happy boy!", created_at: "2015-01-13 10:53:59", updated_at: "2015-01-13 10:53:59", user_id: 1>

解説

createメソッドはインスタンスを生成(new)して保存(save)するまで一気にやってくれるメソッド。引数はnewメソッドの時と同じように

Tweet.create(text: "i am happy boy!", image: "http:://happy_boy.jpg", user_id: 1)

と書く。