#2 Plaza Model 만들기 - Plaza Model 생성

Plaza Model 생성
<code>rails g model plaza postitable:references{polymorphic} visible:boolean</code>

Plaza Model DB 생성
```
rake db:migrate
rake db:test:clone
```

Plaza, Post 관계 설정
<h6>models/plaza.rb</h6>
<code>belongs_to :postitable, polymorphic: true</code>
<h6>models/post.rb</h6>
<code>has_one :plaza, :as => :postitable, :dependent => :destroy</code>
<h6>models/question.rb</h6>
<code>has_one :plaza, :as => :postitable, :dependent => :destroy</code>

Plaza Factory 추가
- 다른 모델과의 관계 선언 및 객체 타입별 생성
<pre>
  factory :post_plaza, class: "plaza" do
    association :postitable, :factory => :post
    postitable_type 'post'
    visible false
  end
  factory :question_plaza, class: "plaza" do
    association :postitable, :factory => :question
    postitable_type 'question'
    visible false
  end  
</pre>

Post Factory 변경
- Post 객체 생성시 Plaza 객체 추가
<pre>
    after(:create) do |post|
      post.plaza = FactoryGirl.create(:post_plaza, postitable_id: post.id, postitable_type: "post")
    end    
</pre>

Plaza Spec 추가
- Post, Question 생성시 자동으로 생성되는 Plaza 확인
<pre>
describe Plaza do
  describe "모델 객체의 생성" do
    it "> Post 객체를 유효한 데이터로 생성시 Plaza에 추가된다." do
      post = create(:post)      
      expect(post.plaza).to be_valid
    end
    it "> Question 객체를 유효한 데이터로 생성시 Plaza에 추가된다." do
      question = create(:question)      
      expect(question.plaza).to be_valid
    end    
  end
  describe "유효성 검증"
  describe "관계선언 검증"
  describe "스코프 및 클래스 메소드 검증"
  describe "인스턴스 메소드 검증"
end
</pre>