第4回では、質問に回答する機能をつくります。
質問への回答機能
scaffoldを使用してテンプレートを作成します。
$ rails g scaffold answer user:references question:references content:text
生成されたマイグレーションファイルのquestion項目にnull: falseを追加して実行します。
$ rake db:migrate
routes.rbにルーティングの設定を追加します。色々な考え方があると思いますが、今回は下記のように設定しました。
resources :questions do resources :answers end
現在の状態を確認します。ルーティングの設定は、開発の過程で変更する可能性もあります。
question_answers GET /questions/:question_id/answers(.:format) answers#index POST /questions/:question_id/answers(.:format) answers#create new_question_answer GET /questions/:question_id/answers/new(.:format) answers#new edit_question_answer GET /questions/:question_id/answers/:id/edit(.:format) answers#edit question_answer GET /questions/:question_id/answers/:id(.:format) answers#show PATCH /questions/:question_id/answers/:id(.:format) answers#update PUT /questions/:question_id/answers/:id(.:format) answers#update DELETE /questions/:question_id/answers/:id(.:format) answers#destroy questions GET /questions(.:format) questions#index POST /questions(.:format) questions#create new_question GET /questions/new(.:format) questions#new edit_question GET /questions/:id/edit(.:format) questions#edit question GET /questions/:id(.:format) questions#show PATCH /questions/:id(.:format) questions#update PUT /questions/:id(.:format) questions#update DELETE /questions/:id(.:format) questions#destroy
参考リンクを見ながらコントローラとそれに関連するviewを編集して、回答できる状態をつくりました。この辺りの動作はUIも含めて検討中のものが多いので、ある程度まとまったら整理したいと思います。
参考: RailsのScaffoldでネストしたResourceを作る
現在の状態
新規回答画面
質問閲覧画面