2015-02-18 43 views
0

當前正在構建我的第一個rails應用程序...我使用外部API來獲取信息。我可以在本地播種數據庫,並在用戶看到的下拉菜單中查看該數據的結果,但我希望這些信息來自API。rails options_from_collection_for_select - 從API下拉顯示正確的數據,用戶從下拉列表中選擇

這段代碼顯示了我在seed.db中所擁有的類別,但我需要從api中提取並顯示這些類別,然後我想在用戶選擇特定類別時顯示與該特定類別相關的項目類別。我打算使用JS來做這件事,但對於在Rails中實現這一點的方法開放 - 因爲我是新手! -

視圖 - (顯示類的下拉菜單中找到seed.db)

<select> 
     <option value="category">Select Book Category</option> 
     <%= options_from_collection_for_select(Category.all, :id, :title) %> 
    </select> 
控制器

- 我正確地從API解析信息(我敢肯定,這不是最好的格式但它的工作)。我可以在相應的視圖中迭代,並在視圖中顯示解析信息中的信息。這只是在下拉菜單中連接點並正確顯示該信息的問題。

控制器

-

def index 
    base_url = 'sample url from google api using' 
    key = ENV['GOOGLE_API_KEY'] 
    url = base_url + key 

    response = RestClient.get(url) 
    @events = JSON.parse(response) 

    respond_to do |format| 
    format.html 
    format.json { render json: @events } 
end 

回答

0

所以options_from_collection_for_select只是需要你進入它,除非你指定它沒有明確使用任何來自控制器的集合。您的代碼options_from_collection_for_select(Category.all, :id, :title)通過Category.all從數據庫查詢。

它看起來像你存儲在API中的信息在@events(雖然看起來像一個事件列表而不是類別列表)。如果你有你的,你分配給@categories的API產生的變動,那麼你可以用它在你看來是這樣的:

options_from_collection_for_select(@categories, :id, :title)

相關問題