RailsGirls,more! 第16回 #railsgirlstokyo

10/13(月・祝)に開催された、RailsGilrs,more!に参加しました!

先日、RubyHirobaにて開催された RailsGirlsTokyo 4thのあとだったので、初めての方の参加もありました。
仲間が増えるよろこびよ。

私は今回もRSSリーダーを抱えていきました。
今回の目標は、管理者認証機能をつくることと、Herokuへのデプロイをすることです。

認証機能はdeviceをつかうことにした

deviceはもしかしたら、RailsGirlsTokyo 2ndに参加したときにトライしたことがあったかな…
といううろ覚え。
今回は管理者だけがログインできて、他の人はアプリが見られればOKというものを目指していたので、
方法はいろいろあったんですが、コーチと相談してdeviceでやることに。
これだと今後機能を拡張したいときにも役立つのかな?

ということでRailsGirlsのチュートリアルを参考にしました。
http://railsgirls.jp/devise/

ただしこれはRailsGirlsのチュートリアルで作成したアプリのためのものなので、
適宜読み替える必要がありました。

Userモデルでの機能
$ rails g device user

とすることでdevice機能をもったUserモデルが生成されるようで、
いきなり便利オプションのついたuser.rbが作成されます!
コーチと相談しながら、必要のないオプションは削除しました。

deviceコントローラを継承したコントローラを作成

コントローラの変更が必要だったので、それはこちらを参考にしました。
Rails – Deviseのコントローラをカスタマイズする方法 | 株式会社田村倉庫

RailsGirlsのチュートリアルのStep4あたりでやったんだったかな。
でないとSignupしてみようとしたときにエラーがでるはず。

before_filter でサインインユーザのみの権限を設定

今回は、フィードURLを追加したり変更したり削除したりすることを、サインインしているユーザにしか権限をあたえない、という設定にしたかったのです。
サインインは管理者しかできないことにするので、今回は管理者とか一般ユーザとかの区別はなし。
このときのコツとしては、逆説的な考え方でフィルターをかけるといいらしい
どういうことかというと、

サインインしていなければaddとeditとdeleteは制限したい。

ではなく

サインインしていなければindexとshowしかできない。

という考え方にする、というもの。

実際、before_filterのところ、はじめは下記のように書いたんですが、これだと抜けがある。

before_filter :accessible_check, :only => [:new, :edit, :destroy]

create と update も、制限しないといけないんですよね。
だから下記のように書きかえます。

before_filter :accessible_check, :except => [:index, :show]

おー。

見落としが減るコツなんだそうです!メモ!!

Herokuのデプロイが(やっぱり)簡単だった

Railsチュートリアルでもたびたびデプロイしていて「ほんとに簡単だな〜」と思っていましたが、
やっぱり簡単でした〜。

RailsGirlsのチュートリアルがわかりやすいと思います。
http://railsgirls.jp/heroku/

built-inユーザをseedデータで用意した

デプロイしたアプリには認証機能がついていますので、最初にひとり登録しておかないと、何もできなくなってしまいます。
ということでbuilt-inユーザをseedデータで最初に流すようにして、
すぐにheroku consoleでパスワードなどを変更してしまいます。

…と今気づいたんですが、heroku consoleでユーザ情報を作ればいいから、
このseedデータいらなかったのでは…??

でも実務とかだと、built-inユーザを作って対応するのがお作法なのかな??

ポスグレにはまらずに済んだ

Kajaeruのときにはまってしまったポスグレ様ですが、今回はすんなりでした。
そういえば、Railsチュートリアルのときもはまったことなかったし、
Kajaeruのハッカソンのときのはまりようは一体なんだったんだろう…??

ポスグレ恐怖症になりそうだったけど、大丈夫でした。

というわけで公開

一応、超最低限の要件を満たした状態でHerokuにデプロイしました!!
まだまだここから修正していくので、今はまだ「ベータ版」みたいな気持ち。

よちよちのみんなのブログが一覧できるアプリ、という位置づけなので、
よちよち一周年記念を目標にリリース(?)したいなぁ!

…と思ったら、よちよち.rbの第0回は11/19でした!
あと1か月しかない!!