通过rails中的控制器将搜索项从视图发送到服务

时间:2018-02-10 11:08:17

标签: ruby-on-rails ruby search

我很难理解在rails中的搜索。我想从我的视图发送搜索词到服务。我的服务中有这段代码:

class Searching
    def search_term
        drive_auth.list_files(q: "fullText contains 'term'",
                              spaces: 'drive',
                              fields: 'nextPageToken, items(id, title)')
    end
end

这个代码在控制器中:

class SearchController < ApplicationController
  def index;  end
  def show
    //here I should take term from search box and send to 
      search_term in service instead of word 'term'
  end
end

这是我的观点(我知道这不是完整的代码,这就是我需要帮助的原因)

<p>
  <%= text_field_tag :search, params[:search] %>
  <%= submit_tag "Search", :name => nil %>
</p>

我想要的是从index.html.erb搜索并在点击时在show.html.erb页面中显示结果。如何将此参数发送到服务中的搜索方法并以html显示结果?

1 个答案:

答案 0 :(得分:0)

如果您想将params[:search]从控制器发送到服务,则以下代码可能会解决您的问题:

在控制器中:

class SearchController < ApplicationController
  def index;  end
  def show
   result = Searching.new.search_term(params[:search])
   # Your code to use result
  end
end

在服务中:

class Searching
    def search_term(q)
        drive_auth.list_files(q: "fullText contains '#{q}'",
                              spaces: 'drive',
                              fields: 'nextPageToken, items(id, title)')
    end
end