2009-08-15 10 views
4

(認証とログイン用)を作成し、ログアウトのためを破壊するのは、私は、ユーザーのログインとログアウトを制御SessionsControllerを、持っていると言うが、私は本当に必要な唯一のアクションは、(ログインフォームを表示する)新しいあり、ユーザー。すべてのRESTアクションをRailsコントローラに実装しないのは間違っていますか?

私のコントローラにこれらの3つのアクションがあるだけで、正しく動作させるためにはすべてを実装する必要がありますか?

もう少し質問です。一部の人々は、足場が悪いと言って、手でコードを書く必要がありますが、私はそれがかなり便利で時間を節約することがわかります。

スキャフォールディングを使用しても問題ありませんか、それとも避けなければならない悪いのですか?

答えて

10

それはあなたがそのリソースのためにサポートするRESTfulなアクションを作成する間違いなく大丈夫です。 7つのアクションすべてを定義する必要はありません。実際、私のコントローラの大半は7つのアクションすべてを使用していません。

スキャフォールディングを使用しても問題ないですか、それとも回避する必要があるのは ですか?

組み込みのRailsスキャフォールディングは、主に開始時に地面から降りるのを助けるように設計されています。私は個人的には、いくつかの理由で毎日の開発に使用していません。

  • (私は通常、それらのすべてを望んでいないと述べたように)それが作成されます
  • 私は、既存のアプリケーション1
  • を使用したいときには、すべてのコントローラのアクションを生成CSSレイアウトファイルを生成私がほとんど必要としないすべてのアクションのXMLフォーマット
  • "編集"アクションと "新しい"アクションの両方が必要なときにフォームを部分的に入れません
  • 時々別のテストライブラリ(ShouldaやRSpec )

しかし、私は開発をスピードアップするための足場のファンです。これが私がほとんどいつも使っているnifty_scaffold generatorを作った理由です。上記の問題はありません。

+0

+1 - すばらしい答え! –

4

必要なアクションのみを実装する場合は何も問題ありません。 Rails 2.3では、あなたのルートでさらに明確にすることができます。

map.resources:FOO、:のみ=> [:作成、:、破壊:新しい]は

1

RESTは実際には4つの動詞しか持たないことを忘れないでください。GET、POST、 UPDATE PUTとDELETE。 RETEの編集と新しいアクションは、リソースを編集するためのフォームを表示するGET動詞の回避策です。 indexアクションは、別のリソース上のGETであり、アプリケーション開発コンテキストでは、同じファイルに格納する方が理にかなっているため、他のリソースとバンドルされているだけです。

+1

RESTはアクションを定義しません。私はあなたが4つの主要なHTTP動詞GET、PUT、POST、DELETEを参照していると仮定しています。HTTPには他の動詞があります。 –

関連する問題