2015-02-18 53 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)

相关问题