みなさん、こんにちは!
筆者は大学生限定のプログラミングスクール「GeekSalon」でメンターをしています!
興味のある方や話だけでも聞いてみてい方はぜひのぞいてみてください👍
さっそく今回の本題に入っていきます!
今回は投稿の分類に応じて、新規投稿後のリダイレクト先を変更していきます。
私はこの記事の「カテゴリー分けその2」の方法を参考に投稿を分類するということをおこなったのですが、新規投稿完了後にリダイレクトするページがどのカテゴリを選んでも同じViewページに飛んでしまうため、カテゴリに応じてリダイレクト先のViewページも変更したいと思いそれを実装しました。今回はその方法残しておきます。
なお、投稿の分類は実装済みという前提で話を進めていくため、投稿の分類を実装していない場合は先ほどの記事を参考に実装したのち、こちらの記事をお読みください!。
##実装環境
ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x64-mingw32]
Rails 6.1.4.1
##実装① ~該当コントローラーのCreateアクションの記述を変更~
今回は参考とした記事に依拠して、dogとcatとhadakadebanezumiという3つの分類を行うことを想定して実装していきます。
やるべきことは以下の1つです。
def create
tweet = Tweet.new(tweet_params)
if tweet.save
#記述個所↓
if tweet.category = "dog"
redirect_to :action => "dog"
elsif tweet.category = "cat"
redirect_to :action => "cat"
elsif tweet.category = "hadakadebanezumi"
redirect_to :action => "hadakadebanezumi"
else
end
#記述個所↑
else
redirect_to :action => "new"
end
end
これだけです!
しかし、この条件分岐はもっと簡略化して記述することもできます。(以下参照)
def create
tweet = Tweet.new(tweet_params)
if tweet.save
#記述個所↓
case tweet.category
when "dog"
redirect_to :action => "dog"
when "cat"
redirect_to :action => "cat"
when "hadakadebanezumi"
redirect_to :action => "hadakadebanezumi"
end
#記述個所↑
else
redirect_to :action => "new"
end
end
これで終わりです!
モデル名・カラム名・カラムに収納されている値は作成するプロダクトに応じて変更してください!
以上で、新規投稿で選択したカテゴリに応じて、リダイレクト先のViewページを変更することができました。