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の内容が表示されます!