【发布时间】:2015-04-27 22:23:23
【问题描述】:
搜索.rb
keywords = ["sheffield", "liverpool", "london", "manchester"]
get '/search' do
@keyword = "No keyword entered"
@results = []
puts keywords[0]
unless params[:filter].nil?
@tick_box1 = params[:filter][:follower] == 'on'
@tick_box2 = params[:filter][:following] == 'on'
end
if (@tick_box1) && (@tick_box2)
@results = @client.search('chelsea').take(20)
elsif (@tick_box1) && (!@tick_box2)
@results = @client.search('arsenal').take(20)
elsif (!@tick_box1) && (@tick_box2)
@results = @client.search('liverpool').take(20)
else
unless params[:keyword].nil?
@keyword = params[:keyword]
@results = @client.search(@keyword).take(20)
end
unless params[:use_keyword].nil?
@results = @client.search(keywords[0]).take(20)
end
end
erb :search
end
搜索.erb
<% query = "" %>
<h1>Search</h1>
<div class="search-container">
<form>
<input type="search" name="keyword" value="<%=h params[:query]%>">
<input type="submit" value="Search" class="button">
<a href="?use_keyword=1" class="button">Use Keywords</a>
<a href="settings">Edit Keywords</a>
<div class="filters">
<ul>
<li><input type="checkbox" name="filter[follower]">Followers</li>
<li><input type="checkbox" name="filter[folowing]">Following</li>
</ul>
</div>
</form>
<% if query != "" %>
<p>Showing results for <strong><%=h query %></strong></p>
<% end %>
<%= @keyword %>
<ol class="search-results">
<% @results.each do |result| %>
<li><%= result.text %></li>
<% end %>
</ol>
<%= erb :"partials/pagination", :locals => {
:total_results => 100,
:results_per_page => 10,
:current_page => 1
}%>
我想让它在选中复选框时搜索特定类别(例如跟随者)。但目前即使我选中复选框,它仍然会搜索输入的关键字。但如果我不选择任何复选框,我只希望它在整个 Twitter 中搜索输入的关键字。有没有人有任何解决方案。
ps(我会写代码搜索追随者,等我想明白之后再关注。)
【问题讨论】:
标签: ruby-on-rails ruby twitter sinatra