我基本上把一個應用程序做了一個超級簡單的問題=>回答測試,試圖瞭解更多關於rails的內容。如何堅持使用REST?
ie: 問題:「你的狗叫什麼名字?」 答:「Doggington」
我有兩個簡單的屬性的問題型號: 問題:字符串 correct_answer:字符串
我在這裏的鬥爭是如何申請REST校長這一點 - 特別是,當我我正在檢查用戶的輸入(答案),看看他是否正確回答了問題。
我不確定是否應該修改「顯示」方法(或任何其他操作)以接受發佈給它的值的值......並且它似乎應該在我的應用程序中創建一個新方法questions_controller稱爲「verify_answer」或長這些行。
這打破了REST。
您認爲如何?
謝謝!
不能夠感謝你。你的回答非常明確,而且生病了。 – 2011-06-15 20:43:23
後續問題:如果問題模型包含問題和答案,那麼我假設我的'AnswersController#create'應該查詢數據庫並找出被問詢的「問題」的「答案」。我如何訪問問題的ID,以便我可以在'AnswersController#create'中查找它?謝謝! – 2011-06-15 23:02:43
那麼這就是在'questions'裏嵌套資源的美妙之處(正如在路由指南中指出的,一條經驗法則是永遠不會超過1層深)。由於動作是通過類似'/ questions/8/answer'的方式訪問的,因此路由器會自動爲您提供question_id。在'AnswersController'的'create'動作中用'params [:question_id]'訪問它。因此,在這個動作中:'Question.find(params [:question_id])'應該做到這一點。 – nzifnab 2011-06-15 23:21:34