個人的にアプリケーションとして完結させる方法としては以下2つの方法ですかね。
どちらもログイン機能を作成することを前提とします。
- 管理画面の実装
- ログインしているユーザーにのみ投稿/編集/削除ボタンを表示
1に関しては、TOP画面(投稿が見れる画面)とは別に、例えば/loginなどのログインページを作成して、ID/パスワードを入力して認証が通れば管理画面(/admin など)にリダイレクトする方法です。
2に関しては、少し技術と検証が必要かもしれませんが、(自分でもやったことないのでアイディアですが)1と同様にログイン画面を別途作成し、ログインしたらTOP画面にリダイレクトし、TOP画面の生成処理をする際、ログインに成功済みユーザーかを判別して、ログインしていれば投稿/編集/削除ボタンを生成する、ログインしていなければ生成しないという方法です。
念のため投稿/編集/削除をした際にrails側でログイン済みユーザーか確認する処理を入れるとよいと思います。
管理画面へアクセスできる権限を持っているかやログイン済みユーザーかはブラウザが持つクッキーに(暗号化した)ユーザーIDを保存し、その中身を検証して判断します。
ログイン機能はdeviseを使用しなくても実装は可能です。
一番基本となるのは以下のサイトです。
第1章 ゼロからデプロイまで - Railsチュートリアル
この7章、8章あたりにログイン機能の実装方法が書いてあるので、まずはこれをベースにログイン機能を実装するとよいと思います。
いきなり7,8章を見てもよいですが、前後関係があるのでわかりにくければ最初から一通り見てみるのもいいと思います。(習熟度が分かりませんが、良い復習になるかもしれません)
(というか、scafoldで作成するよりも全部手動で作成してみて仕組みを理解するほうが良いかと思います)
deviseを使用しないと多少不便なところはありますが、(セッションの期限を切れないなど)一応解消方法はある(DBによるセッション管理機能の追加等)ので、使わなくてもいいと個人的には思います。
railsに限らずdeviseの様なフレームワーク系はそれ自身の使い方をある程度理解する必要が(本当は)あります。
また、deviseの元となっているのはrailsで、その元はrubyなので、まずはフレームワークを使用せずに開発したほうがスキルとして身につくと思います。
(スキルがいらなければフレームワーク使ってよいですが)
個人的(インフラ系の人)には、インフラによる認証や制限(ip制限やbasic認証)はどうしても手っ取り早く制限を済ませたい時(既存アプリはあるけどとりあえず一部公開したい)やセキュリティの強化(ip制限+アプリログイン)でしかやらない印象なので、ちゃんとアプリを作りたいのであればrails側でログイン機能を実装したほうが良いと思います。