簡體   English   中英

rails options_from_collection_for_select - 在API的下拉列表中顯示正確的數據,用戶從下拉列表中選擇

[英]rails options_from_collection_for_select - display proper data in dropdown from API and user selects from dropdown

目前正在構建我的第一個rails應用程序...我正在使用外部API來獲取信息。 我可以在本地播種數據庫,並在用戶看到的下拉菜單中查看該數據的結果,但我希望這些信息來自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

因此, options_from_collection_for_select只會獲取您傳遞給它的集合,除非您指定它,否則不會專門使用控制器中的任何內容。 您的代碼options_from_collection_for_select(Category.all, :id, :title)通過Category.all從數據庫中查詢。

看起來你在@events存儲來自API的信息(雖然看起來像一個事件列表而不是類別列表)。 如果您有從您分配給@categories的API生成的變量,那么您可以在視圖中使用它,如下所示:

options_from_collection_for_select(@categories, :id, :title)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM