Dieses Mal werde ich vorstellen, wie die Suchfunktion in Rails implementiert wird.
routes.rb
get 'search' => 'posts#search'
html:index.html.erb
<div class="search-form">
<%= form_with url: search_path, method: :get, local: true do |f| %>
<%= f.text_field :keyword, value: @keyword %>
<%= f.submit "Suche" %>
<% end %>
</div>
<div class="post-list">
<% @posts.each do |post| %>
<%= post.title %>
<% end %>
</div>
Beschreiben Sie Folgendes in post.rb.
post.rb
def self.search(keyword)
where(["title like? OR body like?", "%#{keyword}%", "%#{keyword}%"])
end
OR gibt den Artikel aus, wenn das Suchwort teilweise teilweise mit Titel oder Text übereinstimmt. (Verwenden Sie AND, wenn Sie nur ausgeben möchten, wenn sowohl Titel als auch Text getroffen werden.)
posts_controller.rb
def search
@posts = Post.search(params[:keyword])
@keyword = params[:keyword]
render "index"
end
Damit ist die Suchfunktion abgeschlossen.
Recommended Posts