Railsに初めて触れる方を対象にしたチュートリアルです
paper_trail
を使用して投稿内容の差分管理を行うサンプルアプリを作成するチュートリアルです
まず、rails new
を実行し、Railsアプリのひな型を作成します
rails new papertrail
次に、作成したRailsアプリのディレクトリへと移動します
cd papertrail
先ほどのrails new
でsqlite3
のインストールがエラーになっている場合は、以下のようにバージョンを指定してください
gem 'sqlite3', '1.3.13'
その後、bundle install
を実行します
bundle install
rails new scaffold
コマンドを使用し、CRUDを作成します
rails scaffold post title:string content:text
その後、rails db:migrate
でマイグレーションを実行します
rails db:migrate
まずは、Gemfile
にgem 'papaer_trail'
を追加します
gem 'papaer_trail'
その後、bundle install
を実行します
bundle install
次に、app/models/post.rb
を以下のように変更します
class Post < ApplicationRecord
has_paper_trail
end
次に、app/controllers/posts_controller.rb
のshow
アクションに以下のコードを追加します
@pre_post = @post.paper_trail.previous_version
最後に、app/views/posts/show.html.erb
に以下のコードを追加すればOkです!
<p>
<strong>Pre Content:</strong>
<%= @pre_post.content %>
</p>
これで、新しく作ったcontent
の内容とその一つまえのcontent
の内容が表示されます!