Rails – 掲示板 – 新規投稿ページ

概要

サインインユーザーによる新規記事投稿のページを実装していく。

  • サインインユーザーがメニューアイコンをクリックして新規投稿ページへ
    • 新規投稿ページでは、メッセージを入力、画像ファイルを指定
    • サインインしていないユーザーに対してはアクセス制限
  • ここではresourcesによるRails標準のルーティングを使う
  • コントローラーはPostsController.rb

掲示板の第2段階へ

ルーティング

コントローラーに対応したpostsについてresourcesでルーティングを設定する。

config/routes.rb

resourcesにより設定されたルーティングは以下のとおり。

rails routes

コントローラー

PostControllerコントローラーを生成する。アクションについては、生成後のコントローラーファイルを編集することとして、ここでは枠組みだけを生成。

rails generate controller posts

生成されたコントローラーファイルにアクションを追加。

  • new
    • 他画面から遷移して投稿画面をレンダリング
    • ビューで扱うモデルはPostなので、@postUserのインスタンスをいれておく
  • create
    • 投稿画面からのPOSTにより処理が渡され、投稿記事の新規作成処理を行う

またアクション実行前にauthorizeをコールバック登録し、アクセス制限をかけている。

app/controllers/posts_controller.rb

ビュー

newアクションによりレンダリングされるページのコード。

メッセージ入力用のtext_areaとファイル選択用のfile_field、送信用のボタンを配置する。

views/posts/new.html.erb

スタイル

ビューに対する最低限のスタイルを設定。

app/assests/stylesheets/posts.scss

リンク設定

サインインユーザー用ヘッダーメニューのアイコンから記事投稿ページへのリンクを設定。

app/views/layouts/application.html.erb

 

コメントを残す

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