ruby-on-rails - ReSTful rails 模型中的搜索操作

标签 ruby-on-rails ruby-on-rails-3 rest

所以,我对 Rails 还是很陌生,并且仍在按照自己的方式工作。我想和大多数人一样,我已经开始创建基本的 CRUD。好的。完毕。

现在我想要一个新 Action :搜索。事实证明,它不是 7 个其余的神圣 (!) 行动之一(如果做对了)。虽然我知道我可以实现新的自定义操作并为其提供资源以及所有内容,但我还是阅读了一些地方,以尽可能长时间地坚持标准操作。好的。什么是正确的方法?

还有一些来源,如 this guy建议在 中思考我的场景名词 ,在这种情况下我似乎需要一个“搜索” Controller ......?它只是不能让我相信我必须创建一个完整的类,而我通常会这样做 def search只是为了保持它的休息。

我做错了什么?这里的常见解决方案是什么?

谢谢。

最佳答案

REST 是一个概念,而不是一种宗教:-)。但核心动词是 GET/POST/PUT/DELETE,它们映射到它们关联的 HTTP 动词。 URL 中的内容通常反射(reflect)了这一点,并且(这更像是 Rails 哲学)遵循约定可以使一切变得更容易。您使用通用 rails (例如脚手架)获得的 URL 在某些方面并不是特别理想,但它们有效,您可以更改它们。

所以,是的,对于搜索(假设它开始很简单,例如在单个模型中查找记录,比如 Product )然后你可以用这样的查询字符串执行 GET

def search
  @results = Product.where("name ILIKE ?", params[:query])
  ...
end

这会导致 URL 像 /product/search?query="foo" ——这没什么不对的。

关于ruby-on-rails - ReSTful rails 模型中的搜索操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9843294/

相关文章:

ruby-on-rails - 自动化 facebook/twitter 帖子

ruby-on-rails - Rails - Mongoid : newly added fields in model giving nil for old data objects

Java Spark,无法使用 PUT 或 PATCH 更新数据

java - 使用 REST Web 服务就修改情况与 2 个应用程序进行通信

java - 基于 REST 的简单程序中的 HTTP 500 内部服务器错误。从服务器接收/发送响应时混淆 GET 和 POST

ruby-on-rails - 为什么我需要 Nginx 和 Puma?

ruby-on-rails - Rails 3 和 PDFKit,如何将 HTML 文件转换为横向 PDF?

ruby-on-rails-3 - 仅在Heroku上完成302在Rails 3中的注册过程

javascript - 使用 RoR Assets 管道将样式表添加到 Javascript

ruby-on-rails - 路由错误 - 未初始化的常量 UsersController? omn​​iauth-facebook