我是Ruby和Rails的新手。我曾經與Sinatra玩過一段時間,但我認爲Rails是我的項目更完整的框架。但是,我遇到了麻煩。Ruby on Rails:如何讓一個表和多個模型具有多個控制器
我正在使用一個相當可觀的現有的,使用率很高的mySQL數據庫,我正在嘗試爲此構建一個API來報告某些功能。所需的功能大多數情況下是按某些分組統計的記錄數,然後深入細節。
例如,我們有一個table-tableA,其中包含大量與文檔相關的信息。我們想從中報告的一條信息是給定語言中的項目數量。語言代碼是針對每個項目存儲的,並基於獲取請求我想返回JSON。
請求: /語言/:代碼/計數/:表名
有在最具體的URL兩個變量 - 我們指望的代碼,我們從計數表。
我明白,在我的routes.rb可以建立一個映射:
get '/languages/:code/count/:table', :controller=>'languages', :action=>'count'
我有一個控制器 - languages_controller.rb在其上的計數方法。然後匹配一個相應的視圖文件count.html.erb
在所有教程中,我已閱讀和示例我遵循的主要觀點似乎'語言'將是數據庫中的表,並且因此將可用'魔術'的Rails方法。
我的問題是它不是一個表,而是調用的結果應該是tableA中字段的有限子集。如languagecode和count(id)。
語言描述需要「手動」查找,因爲它存儲爲不在任何地方的數據庫(歷史決定/瘋狂)中的內部代碼。
的問題:
- 我怎麼有一個模型,這只是場的一個子集,再加上一些手動填充 - 語言代碼,isocode,說明,算
- 我是正確的思想,一旦我將模型定義爲可以使用ActiveRecord從數據庫獲取數據,然後在控制器中添加額外的信息?
- 我可以根據URL中發送的參數更改模型中的表嗎?
本質上,我目前對如何處理這個問題不知所措。我有定義的路線,視圖模板和控制器在那裏,並準備好去。數據庫組件 - 從預先存在的表中獲取一些數據對我來說似乎很神祕。
任何幫助非常感謝,似乎框架目前正在阻礙我,我知道我不能是唯一一個嘗試這種事情,所以如果你有任何建議,請分享。
我覺得太過分了。我想,對於Rails而言,我只是想檢查一下。在我的API中會有其他的情況,ORM部分是有用的,所以我現在就繼續前進。謝謝 – nathj07