心はいつもAirPucci (空元気でもいいから)

毎日がPucciを着ているような気分

RailsTutorial4.0を高速で復習する。10章。

   


第10章ユーザーのマイクロポスト、です。

has_many、belongs_toを使ってデータの1:nを実装します。
ブランチ切ります。
git checkout -b user-microposts

10.1Micropostモデル、です。
10.1.1基本的なモデル、です。

仕様

user_has_many_microposts
ユーザーに複数のポストがひもづけられています。ポストが属するのは1ユーザーだけです。
user:micropostは1:nの関係です。

マイクロポストのテストを書く

今度こそrails gする前にテスト書いてみます。
micropostオブジェクトが content属性とuser_id属性を持っていることを確認するテスト、とのこと。

リスト10.2 最初のMicropost spec。
spec/models/micropost_spec.rb

require 'spec_helper'

describe Micropost do

let(:user) { FactoryGirl.create(:user) }
before { @micropost = user.microposts.build(content: "Lorem ipsum") }

  subject { @micropost }

  it { should respond_to(:content) }
  it { should respond_to(:user_id) }
end

リスト10.6 ユーザーのmicroposts属性に対するテスト。
spec/models/user_spec.rb

require 'spec_helper'

describe User do

  before do
    @user = User.new(name: "Example User", email: "user@example.com",
                     password: "foobar", password_confirmation: "foobar")
  end

  subject { @user }
略
  it { should respond_to(:admin) }
  it { should respond_to(:microposts) }
略
end

この段階ではMicropost (NameError)でテストになりません。

Micropost作る

rails g model Micropost content:string user_id:integer

bundle exec rake db:migrate
bundle exec rake test:prepare

テストはまだNameErrorです。

MicropostとUsetひも付け

リスト10.7 マイクロポストがユーザーに所属する (belongs_to) 関連付け。
app/models/micropost.rb

class Micropost < ActiveRecord::Base
  belongs_to :user
  validates :user_id, presence: true
end

リスト10.8 ユーザーがマイクロポストを複数所有する (has_many) 関連付け。
app/models/user.rb

class User < ActiveRecord::Base
  has_many :microposts
略
end

これでテストにはパスします。
いったんコミットします。次は
10.1.4マイクロポストを改良する
です。

 - テクニカル ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

パーフェクトRuby 2章Rubyの基礎 2-2 変数と定数

p47 2-2-1 ローカル変数 スコープは ・ブロック内 ・メソッド定義内 ・ …

no image
Macで.htaccessを表示する設定

MacBook Air2代目。以前は行っていた.(ドット)がついたファイルをMa …

RailsTutorial4.0を高速で復習する。11.3章。

11.3ステータスフィード、です。 11.3.1動機と計画、です。 仕様 mic …

no image
もう一度、Future Vision

2019年の世界。あと7年。 登場人物に日本人がいない事にも注目してほしい。 関 …

初めてのRuby8章 8.2変数と定数

8.2 変数と定数 8.2.1 インスタンス変数 @で始まるのがインスタンス変数 …

no image
RailsTutorial4.0を高速で復習する。10.3.3章。

10.3.3フィードの原型、です。 仕様の確認 ユーザーログイン後、トップページ …

Mac miniの液晶モニターにDell U2713HM使っています。

次期モデルが出るかもしれないのにMac miniを買って、自分でメモリを16Gに …

no image
formatはどこから取ってくる?

ruby on rails3プリケーションプログラミングの本の内容をruby2. …

実機なしでRetina 3.5インチのスクリーンショットを撮る

iPhoneアプリ公開時に2種類の画像登録が必要です。 1つ目はアイコン。アプリ …

no image
Gitをインストールする

Rails開発がしたいのですが、今後必要になるでしょうからGitをインストールし …