如何处理带有参数的GET请求

时间:2019-01-19 15:10:32

标签: ruby-on-rails

我刚接触红宝石,只需运行示例https://guides.rubyonrails.org/getting_started.html#installing-rails

我想修改代码以处理GET请求,如下所示:

  • 对于GET文章?special = false,返回所有文章

  • 对于GET文章?special = true,返回所有包含以下内容的文章: 标题中的“令牌”

箱/铁路路线                      文章GET /articles(.:format)文章#index

=== app / controllers / articles_controller.rb

                 class ArticlesController < ApplicationController
                 def index
                 @articles = Article.all
                 end

=== app / views / articles / index.html.erb

         <% @articles.each do |article| %>

         <%= article.title %>
         <%= article.text %>
         <%= link_to 'Show', article_path(article) %>

         <% end %>

============ routes.rb =====

           Rails.application.routes.draw do
           get 'welcome/index'

           resources :articles

            root 'welcome#index'
            end

1 个答案:

答案 0 :(得分:1)

所以你可以做这样的事情,

def index
  @articles = Article.all
  @some_articles = @articles.select {|article| article.title == 'SOME STRING'}
end

然后,您可以在视图中创建第二个循环

<div>
<% @articles.each do |article| %>
  <%= article.title %>
  <%= article.text %>
  <%= link_to 'Show', article_path(article) %>
<% end %>
</div>

<div>
<% @some_articles.each do |some_article| %>
   <%= some_article.title %>
   <%= some_article.text %>
   <%= link_to 'Show', article_path(some_article) %>
<% end %>
</div> 

我的意思是说,可能性实际上是无限的(我可能也无法完全理解您的问题)。

您应该查看this documentation以获得有关Rails中数据库查询的更多信息,而且我不知道您是否看过Ruby on Rails Tutorial,这是一个很好的起点,并且可能会对您有所帮助(不确定如果您没有仔细阅读)