所以,我对 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/