3

私は自分の仕事のプロジェクトで初めて Ruby を使用しているので、まだ少しコツを学んでいます (そして、そのすべての瞬間を愛しています)。

route.rb ファイルの関数のポイントは理解map.connectできますが、Rails の「リソース」と「名前付きルート」機能がわかりません。私はここに Rails の本を持っていて、何度か読んでいますが、まだ理解できません。私がちょっと得た名前付きルート - それらは明示的に定義されたルールか、コードブロックによって計算されたルールのいずれかだと思いますが、リソースは私にとって完全な謎です。私がそれらから光った唯一のことは、「resource_path」(およびそれに関連する素晴らしいメソッドのファミリ) を呼び出すことができるなど、いくつかのクールなものを機能させたい場合は、それらが必要だということです。

私の現在のプロジェクトは次のとおりです。

map.resources :application_forms
map.resources :sections
map.resources :questions
map.resources :seed_answers
map.resources :question_types
map.resources :form_questions
map.resources :rules
map.resources :form_rules

..しかし、私のRailsの本には、この素晴らしい「has_many」および「only」タイプのハッシュとパラメーターがぶら下がっていて、それらをいつ使用することになっているのか、またその利点が何であるかを正確に理解できません。

誰でも私を正すことができますか?

4

3 に答える 3

9

名前付きルートはまさにそれです。URL を生成するときに簡単に参照できるように、名前が付けられたルート。とりわけ、あいまいさを排除できます。

リソースは基本的に、ルートを操作したい「もの」です。「セクション」がリソースであると定義すると、「すべてのセクションを取得するルートが必要です。新しいセクションを追加するルートが必要です。既存のセクションを編集するルートが必要です。セクションを削除するルートが必要です。」そのようなこと。これらのルートindexは、newedit、 などの標準化されたメソッド名を指します。これらの各ルートには、その内容に基づいて名前が割り当てられます。という名前のルートができまし'edit_section'た。

パラメータを使用すると、特定の:has_many種類のものにサブのものがあると言えます。たとえば、 と言うことができますmap.resources :sections, :has_many => [:questions]。これは、質問がセクションに属していることを意味し、これは URL とルートに反映されます。のような URL'/sections/27/questions/12'と名前付きルートが得られ'section_questions'ます。

:onlyパラメータには、「これらのアクションのルートのみを作成する」と書かれています。アイテムのリスト、表示、追加のみを許可し、編集や削除は許可しない場合に使用できます。

于 2009-11-26T06:03:23.130 に答える
1

正直なところ、Rails Routing Guideは、できる限り平易な言葉で適切な説明を提供します。リソース ルート == RESTful ルートであることを知っていれば、準備完了です。

于 2009-11-26T06:29:35.793 に答える
0

2006年にDHHが最初のRailsConfでRailsコミュニティにリソースとRESTを導入したとき、私たちは皆、リソースとRESTを理解するのに苦労していました。そのため、概念を理解するのに苦労するのも不思議ではありません。

今日の概念については、はるかに優れた最新の説明があることを認めますが、当時、Davidの基調講演の直後に、他の会議出席者との話し合いから、それを理解して説明しようとしたブログ投稿を書きました。 。最近の記事のようにRESTについてすべてを知っていることは当然のことではないので、役立つかもしれません。

于 2009-11-26T08:55:08.637 に答える