1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rails でクッションページを作る

Posted at

なにこれ

体系的に学ぶ 安全なWebアプリケーションの作り方 第2版という本の p.239 に「コラム:クッションページ」というのがある。Rails でこのクッションページを作ったらどうなるかな、と思って作成することにした。

コードについて

さて、作っていきますか

とりあえず、コントローラーをつくる

$ rails g controller confirmation_of_external_pages show

ルーティングはこんなかんじ

Rails.application.routes.draw do
  resources :confirmation_of_external_pages, only: [:show]
end

コントローラーはこんな感じ

class ConfirmationOfExternalPagesController < ApplicationController
  def show
    @uri =  Base64.urlsafe_decode64(params[:id])
  end
end

ビューはちょっとプロダクション向けでないコードを含む

h1 クッションページ

hr

p 外部へ移動しますが、よろしいでしょうか。よろしければ上記のリンクをクリックしてください
p =link_to @uri, @uri

hr

p 練習用
ul
  li =link_to "https://google.co.jp/", confirmation_of_external_page_path("aHR0cHM6Ly9nb29nbGUuY28uanAv")
  li =link_to "https://www.yahoo.co.jp/", confirmation_of_external_page_path("aHR0cHM6Ly93d3cueWFob28uY28uanAv")
  li =link_to "https://www.sbcr.jp/product/4797393163/", confirmation_of_external_page_path("aHR0cHM6Ly93d3cuc2Jjci5qcC9wcm9kdWN0LzQ3OTczOTMxNjMv")

できあがったもの

Screenshot from 2020-05-09 06-22-23.png

テスト

System Test とコントローラー向けのコードは書いたが、あまり自信がないのでココにはのせない。Github のレポジトリ をみていただければと思う。

おわりに

クッションページなんてすぐにできるでしょ、と思ったら2時間も経っていた。まぁ、そんなものか。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?