目前正在构建我的第一个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
答案 0 :(得分:0)
所以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)