LoginSignup
1
0

More than 1 year has passed since last update.

投稿ページを作成する #2

Posted at

目的

これの続き
投稿した値をテーブルに追加できるようにします。

今回やること

今回の目標は以下の2つ。

  • アクションの設定
  • 遷移リンクを記載する
  • 詳細画面を作る

環境

  • windows 10
  • ruby 3.0.4
  • rails 6
  • Bootstrap 5.0.2

いざ出陣

アクションの設定

以下のようにアクションを設定します。

app\controllers\communities_controller.rb
class CommunitiesController < ApplicationController
  def index
  end
  
  def new
    @community = Community.new
  end
  
  # 以下を追加
  def create
    community = Community.new(community_params)
    if community.save
      redirect_to :action => 'show', :id => community.id
    else
      redirect_to :action => "new"
    end
  end

  def show
    @community = Community.find(params[:id])
  end

  private
  def community_params
    params.require(:community).permit(:eventname)
  end
  # ここまで

end

投稿を押すと、 create に飛んで、 save が成功したらその詳細画面へ、失敗したらもう一度作成画面に飛びます。
詳細画面にはidが必要なので、 :id => community.id で投稿されたレコードのIDを取得しています。
他はまぁ、見たまんまです。オブジェクトがどうとか細かいことは分かりません。

詳細画面の作成

投稿した後に詳細画面へ飛ぶため、詳細画面を作成します。
app → views → communities に show.html.erb を作成し、以下のように書きます

app\views\communities\show.html.erb
<div class="container">
  <p><%= @community.eventname %></p>
  <p><%= @community.created_at %></p>
</div>

<%= link_to "マイページに戻る", users_path %>

これは、上のアクションで設定した show@community = Community.find(params[:id]) としているので、 @community.eventname で投稿内容、 @community.created_at で投稿時間を表示できます。

・投稿画面

image.png

「作成する」押下後

image.png

遷移ばっちり✨

余談

画面をBootstrapできれいにするのは後でしようと思ったのだけど、
よく考えたらせっかく class の指定できれいになるっていうのにもったいないね。

private がどの程度ばれちゃいけないものなのか分かんない。
たとえば、このサイトをリリースしたら見られない方が良いものなんでしょうか...

次から省略しよ。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0