【发布时间】:2023-04-02 14:23:01
【问题描述】:
我试图在我的一个视图中包含某种“小部件”,以允许用户使用外部“搜索”API。外部 API 返回一组 JSON 结果。我想使用这个 JSON 向用户显示结果列表。
实现这一点的“rails 方式”是什么?
例如,我想在主页上放置一个搜索输入,并带有一个按钮来搜索外部 API。我创建了一个调用 API 的 PORO,这个 PORO 将返回结果,但是我如何获取用户搜索字符串并将其发布到这个 PORO?
【问题讨论】:
-
您希望用户如何与小部件进行交互?您愿意在用户提交搜索参数后重新加载整个页面吗?在我看来,小部件是你只用 JS 做的那种事情,直接查询 api 并就地呈现结果,而无需通过 ruby。但是,如果您必须在将响应呈现给视图之前用 ruby 解析响应,则必须使用常规请求或 ajax 将搜索参数提交给控制器。
-
你可以试试
form_tag,它不绑定模型。 api.rubyonrails.org/classes/ActionView/Helpers/… -
HTTParty gem 可能是您的答案。试试这个问题:stackoverflow.com/questions/748614/…
-
Using form_for suggests a form for a specific model which doesn't work in this case.让您的 PORO 成为一个活跃的模型,form_for将与它完美配合。 -
@TarynEast 的意思是把你的 PORO 变成一个 ActiveModel。 api.rubyonrails.org/classes/ActiveModel/Model.html / 是的..您仍然需要一个控制器来处理该搜索请求。
标签: ruby-on-rails json api