2012-09-03

Railsを使っちゃうぞ!てかhelperの使い方ってなんなんだ!


仕事ではまだまだPHPerですが、9月をもって正式にRubyestに移行しています。あくまで自称です。
 そんな中、初心者コースから開発を始めてみて「helper???」ってなったのでhelperってどこでどうやって使うんだろうということから議事録的に書いています。


そもそもhelperって。。。


 サンプルアプリ程度なら、「helper?何に使うの?とりあえず置いとくか。。。」ってなるでしょうが、ある程度込み入ったアプリを作成するようになると単純にMVCだけ扱っていればいいというわけにはいきません。
 viewなんかは処理のレスポンスによって表示したいものなどが変わり、分岐が出てくる場合があると思います。
 この時、controllerで処理をまとめてしまうという手法をとる人もいるかと思います。しかしそのやり方は自分は間違いかなと感じています。
 何もかもcontorollerにまとめてしまい、viewはただ表示させる。modelはデータを管理するだけだとcontorollerがパンクしてしまいます。そもそもMVCにおけるcontrollerは情報を収集する場所であって特定処理の判断であったりデータの加工を行う場所ではないと考えています。
 では表示に関する判断系の処理やデータ加工処理はviewで行うのでしょうか。
 PHPを使っている人ならまずSmartyが思い浮かぶと思います。controllerからのレスポンスデータをSmartyタグで判断、加工し表示することでviewにもcontrollerにも処理が偏っていません。
 helperはこのSmartyと同じような立ち位置に感じます。
 
 

helperを使うことでviewとcontorollerをすっきりさせる。


 helperをどういう場面で使うかというと、ログインユーザによる権限である項目の表示可否やページネーションでのページリンク、エラー表示などview側で処理の分岐が発生する場面で使用するのが望ましいと思います。
 そうすることでcontrollerやmodelからviewにレスポンスを返す場合、view用の加工をすることなく渡すことができるのでその分すっきりしますし、view側もhelperが判断、加工を行ってくれるのでviewもすっきりします。


 今回、基本的なhelperの使い方についてまとめてみました。
 ここ違うよ!とかこんな使い方あるよ!とかそもそもMVCわかってんの!!!?という指摘がありましたらご連絡ください。そして勉強させてください。。。。

0 件のコメント :

コメントを投稿

LinkWithin

Related Posts Plugin for WordPress, Blogger...