Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何为一个Rails控制器创建多个索引端点_Ruby On Rails_Json_Api - Fatal编程技术网

Ruby on rails 如何为一个Rails控制器创建多个索引端点

Ruby on rails 如何为一个Rails控制器创建多个索引端点,ruby-on-rails,json,api,Ruby On Rails,Json,Api,这似乎是一个简单的问题,但我找不到答案。我的Rails应用程序中有一些书,还有一些特色书。我想要一个列出所有书籍的端点,以及一个只列出特色书籍的端点 我有一个带索引操作的API Books控制器,因此site.com/API/Books将返回所有书籍。如何创建只返回特色图书的第二个端点?还有其他查询方式吗,比如/books?featured=true 谢谢。未经测试,但应该可以使用 routes.rb get "/books(/:type)" => "books#index", as: :

这似乎是一个简单的问题,但我找不到答案。我的Rails应用程序中有一些书,还有一些特色书。我想要一个列出所有书籍的端点,以及一个只列出特色书籍的端点

我有一个带索引操作的API Books控制器,因此site.com/API/Books将返回所有书籍。如何创建只返回特色图书的第二个端点?还有其他查询方式吗,比如/books?featured=true


谢谢。

未经测试,但应该可以使用

routes.rb

get "/books(/:type)" => "books#index", as: :books
books_controller.rb

//在某种灵活的情况下,你只需要加入一个你想要寻找的“过滤器”。您输入“特色”,它将查找“特色=>true”。如果输入“published”,它将查找“published=>true”

index.html.erb

<% =link_to("all books", books_path) %>
<% =link_to("feature_books", books_path(:featured)) %>
<% =link_to("other scoped books", books_path(:other_scope)) %>

未经测试,但应能正常工作

routes.rb

get "/books(/:type)" => "books#index", as: :books
books_controller.rb

//在某种灵活的情况下,你只需要加入一个你想要寻找的“过滤器”。您输入“特色”,它将查找“特色=>true”。如果输入“published”,它将查找“published=>true”

index.html.erb

<% =link_to("all books", books_path) %>
<% =link_to("feature_books", books_path(:featured)) %>
<% =link_to("other scoped books", books_path(:other_scope)) %>

未经测试,但应能正常工作

routes.rb

get "/books(/:type)" => "books#index", as: :books
books_controller.rb

//在某种灵活的情况下,你只需要加入一个你想要寻找的“过滤器”。您输入“特色”,它将查找“特色=>true”。如果输入“published”,它将查找“published=>true”

index.html.erb

<% =link_to("all books", books_path) %>
<% =link_to("feature_books", books_path(:featured)) %>
<% =link_to("other scoped books", books_path(:other_scope)) %>

未经测试,但应能正常工作

routes.rb

get "/books(/:type)" => "books#index", as: :books
books_controller.rb

//在某种灵活的情况下,你只需要加入一个你想要寻找的“过滤器”。您输入“特色”,它将查找“特色=>true”。如果输入“published”,它将查找“published=>true”

index.html.erb

<% =link_to("all books", books_path) %>
<% =link_to("feature_books", books_path(:featured)) %>
<% =link_to("other scoped books", books_path(:other_scope)) %>

这里有各种各样的选项,但最好是定义如下路线:

get '/books(/:featured)' => 'controller#action'
然后,在控制器中,类似于:

@books = params[:featured].present? ? Book.featured : Book.all

这既快又脏,但确实有效。

您在这里有各种选择,但最好是定义如下路线:

get '/books(/:featured)' => 'controller#action'
然后,在控制器中,类似于:

@books = params[:featured].present? ? Book.featured : Book.all

这既快又脏,但确实有效。

您在这里有各种选择,但最好是定义如下路线:

get '/books(/:featured)' => 'controller#action'
然后,在控制器中,类似于:

@books = params[:featured].present? ? Book.featured : Book.all

这既快又脏,但确实有效。

您在这里有各种选择,但最好是定义如下路线:

get '/books(/:featured)' => 'controller#action'
然后,在控制器中,类似于:

@books = params[:featured].present? ? Book.featured : Book.all


这很快又脏,但确实奏效。

你在不信任我的情况下改变了答案而采纳了我的答案,这真是太酷了。很好,你调整了你的,但当你这样做的时候,你应该给予赞扬。哇。。。真的吗?无论什么所有学分都给你-你喜欢什么都行。也许你看到了,我也为那条路线建造了一个flexi控制器。在此之前,我使用/books或/books/:键入where Book.where(featured)加载了它。放松点,兄弟。好吧,我不是想开始争论。我只是说,在我的答案不同之前,你最初的答案是,然后你改变了你的答案,以匹配我的答案。这样做没什么错,只要在你做的时候给予表扬就行了。另外,单独验证“flex”参数以确保其包含有效属性也是值得的,否则,这是一个好主意。(例如/books/jfklafjaklsfjaklsfjaklsfjaklsfjaklsfjaklsfjaklsfjakdsfkajs会导致错误)顺便说一句,你的答案比我的更完整,所以它更有效:)都很好,兄弟。你是对的,我改变了,但这与你的答案无关。事实上,我在编辑我的答案后看到了你的答案。我刚刚发布了我的,我觉得我可以做得更好。当我们只使用路由默认值时,这很好-但是当只有另一个值时设置默认值是没有意义的,所以我想出了将参数从默认值更改为“存在”或“不存在”,并将部分转换为一种过滤器。不管怎么说,希望很酷。你改变了你的答案而不相信我,这很酷。很好,你调整了你的,但当你这样做的时候,你应该给予赞扬。哇。。。真的吗?无论什么所有学分都给你-你喜欢什么都行。也许你看到了,我也为那条路线建造了一个flexi控制器。在此之前,我使用/books或/books/:键入where Book.where(featured)加载了它。放松点,兄弟。好吧,我不是想开始争论。我只是说,在我的答案不同之前,你最初的答案是,然后你改变了你的答案,以匹配我的答案。这样做没什么错,只要在你做的时候给予表扬就行了。另外,单独验证“flex”参数以确保其包含有效属性也是值得的,否则,这是一个好主意。(例如/books/jfklafjaklsfjaklsfjaklsfjaklsfjaklsfjaklsfjaklsfjakdsfkajs会导致错误)顺便说一句,你的答案比我的更完整,所以它更有效:)都很好,兄弟。你是对的,我改变了,但这与你的答案无关。事实上,我在编辑我的答案后看到了你的答案。我刚刚发布了我的,我觉得我可以做得更好。当我们只使用路由默认值时,这很好-但是当只有另一个值时设置默认值是没有意义的,所以我想出了将参数从默认值更改为“存在”或“不存在”,并将部分转换为一种过滤器。不管怎么说,希望很酷。你改变了你的答案而不相信我,这很酷。很好,你调整了你的,但当你这样做的时候,你应该给予赞扬。哇。。。真的吗?无论什么所有学分都给你-你喜欢什么都行。也许你看到了,我也为那条路线建造了一个flexi控制器。在此之前,我使用/books或/books/:键入where Book.where(featured)加载了它。放松点,兄弟。好吧,我不是想开始争论。我只是说,在我的答案不同之前,你最初的答案是,然后你改变了你的答案,以匹配我的答案。这样做没什么错,只要相信w