的狀態,要做到這一點的典型方法Rails使用「資源豐富」的路由,它或多或少自然地將標準CRUD操作映射到您的方法r控制器,使用適當的HTTP動詞。
在路由文件(config/routes.rb)中,設置了所需的資源和操作。例如:
map.resources:疑問:的has_many =>:答案
將設立一個路由方案用於具有多個答案的問題,映射到根據Rails的約定以下動作:
index: GET /questions/1/answers # list of answers for question id=1
show: GET /questions/1/answers/2 # display answer 2
new: GET /questions/1/answers/new # render form for new answer for question id=1
create: POST /questions/1/answers # create a new answer for question id=1
edit: GET /questions/1/answers/2/edit # render form for answer for question id=1
update: PUT /questions/1/answers/2 # update answer 2
destroy: DELETE /questions/1/answers/2 # delete answer 2
在控制器中,您可以創建映射到這些標準操作的方法。您也可以爲不屬於CRUD範例的事物創建您自己的方法和操作(例如,搜索AJAXified自動填充字段,例如)
希望能夠回答您的一些問題。
我想我對此感到困惑(這也適用於Zepplock的答案),是我爲用戶端設置了一系列並行控制器和視圖瑞恩的調查範例,如果是這樣,是不是打敗了DRY模式?我基本上想要一個只讀的應用程序版本,我可以在其中查看和與調查進行交互,但只能回答問題並添加評論。我無法理解這一點。 – thermans 2010-06-01 20:22:46
如果視圖是相同的,唯一的區別是根據查看者的角色顯示某些元素,您可能最好使用單個控制器和視圖,並將「private」部分用「if '聲明。 – zetetic 2010-06-01 23:23:09