現在、railsチュートリアル(http://railstutorial.jp)にて、Twitterに似たWebサービスを作るための練習をしているのですが、
このサイトではscaffoldやdeviseに頼らず、一から自分でメソッドを定義していくプロセスで書かれています。
初心者の人にrailsの全体的な仕組みを理解してもらうために、そのように書かれているのだと思いますが、
ある程度仕組みを理解したら、scaffoledやdeviseを利用した方が良いのでしょうか?
一から自分で作っていくか、それともscaffoldやdeviseといった自動生成メッソドを利用するか、どっちの方が良いのですか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
scaffoldやdeviseによって何が自動で作られているのか理解しているのであればガンガン使っていけばいいと思いますよ!
自動生成することにより、効率化を図れる他、ミスを無くす、作業者間の実装方法の違いを埋める等の効果が見込めます。
投稿2016/06/03 09:47
総合スコア1679
0
ベストアンサー
「場合による」としか言いようがないと思います。
Railsチュートリアルが使わないで説明しているのは、ご推察の通り、仕組みをよく理解して貰うためだと私も思います。Model、View、Controllerがそれぞれどのようなものなのか、認証システムを作る場合はどうなるべきなのかを知っておかないと、scaffoldが何をするものなのか、deviseで何ができるかが理解することは難しいでしょう。
では、実際になると今作ろうとしているものによるとしか言い様がありません。
例えば、一覧表示や個別編集等のViewを必要としないModelおよびそれ関連するControllerとViewをscaffoldで作るのは無駄が多いです。でも、逆に、一覧表示や個別編集などscaffoldで自動で作られるようなViewを必要とするModelおよびそれに関連するControllerとViewを作るのであれば、scaffoldを使った方が素早くできるでしょう。
他にもカスタマイズをどれだけするのかというのもあります。deviseをほぼそのまま使って問題なければ、deviseを使うのが良いでしょうし、逆に、deviseをカスタマイズしまくるのであれば、deviseに頼らずに一から作った方が良いときもあります。他にも、deviseをforkしたり、devise関連のクラスを継承・拡張したオリジナルを使うという手段もあるでしょうし、devise以外の認証ライブラリ(たとえばsorceryとか)を検討するのもいいかも知れません。
いずれにしてもRailsそのものをよく理解しないと判断できないので、チュートリアルでは使わないで説明していると言うことです。ただ、うまく使えば工数の削減になりますので、どういう仕組みで何が作られるかは見てみると良いでしょう。Railsはその名の通りレールの上に乗っかかった(つまり既定路線な)MVCのWebアプリを作る場合は非常に高速です。scaffoldという電車と線路と駅がセットになっている物を作るものであれば、まさしくすぐにできます。レール通りなのか、どれくらいレールから外れるのか、そういった見極めを最初にできるようになれば、Railsを使いこなせてきていると言っても良いかもしれません。
そうそう、MVCからあまりにもかけ離れたものを作ろうとするのであれば、RailsではなくSinatraを使った方が良いでしょう。線路の上に船を走らせようとするぐらいなら、初めから広い海に浮かべた方が良いですからね。
投稿2016/06/03 20:31
総合スコア21751
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
サイト中で説明されている理由では納得ができなかったということでしょうか?
コラム1.2 お手軽すぎるScaffoldの甘い誘惑
...
自動生成されたコードは無駄に量が多く複雑で、Rails初心者には向いていません。たとえ運よく動いたとしても、正常に動いている理由を解明するのはおそらく無理です。scaffoldの自動生成コードに頼っている限り、コード自動生成の達人にはなれるかもしれませんが、Railsに関する実践的な知識はほとんど身に付きません。Ruby on Railsチュートリアルでは、より実践的な知識を身につけるために、Scaffoldとほぼ逆のアプローチで開発を進めていきます。
...
コラム6.1 自分で認証システムを作ってみる
...
自分でわざわざ作らなくても、いつも使える方法をただ利用するだけではいけないのでしょうか。ある実践的な実験によると、多くのサイトの認証システムは膨大なカスタマイズを必要とするため、サードパーティ製品を変更して導入する場合にはシステムをゼロから作成するよりも多くの仕事を要するという結果が出ています。加えて、既成品のシステムは内部がわかりづらいことが多く、ブラックボックスになっています。自分で作成したシステムであれば、それをとてもよく理解しているはずです。さらに言えば、最近のRailsへの変更 (6.3) により、カスタム認証システムを容易に作成できるようになりました。最後に、あえて最終的にサードパーティの認証システムを導入することになったとしても、自分自身で認証システムを構築した経験があれば、サードパーティ製品を理解して変更することがずっと容易になるはずです。
...
投稿2016/06/03 12:16
編集2016/06/03 14:47総合スコア22328
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。