Implementieren Sie beim Erstellen einer persönlichen Anwendung eine Suchfunktion, damit der Inhalt der veröffentlichten Artikel durch Suchen angezeigt werden kann.
Dieses Mal wechseln wir nicht zur Seite, indem wir Folgendes angeben: id, daher verwenden wir die Sammlung, um das Routing festzulegen.
routes.rb
resources :posts do
get :search, on: :collection
resource :likes, only: [:create, :destroy] -Wie Funktionsimplementierung
end
** LIKE-Klausel ** Die LIKE-Klausel kann nach einer Zeichenfolge suchen. Wird mit der where-Methode verwendet.
Ausführungsbeispiel | Einzelheiten |
---|---|
where('title LIKE(?)', "a%") | Titel beginnend mit a |
where('title LIKE(?)', "%b") | Titel mit der Endung b |
where('title LIKE(?)', "%c%") | Titel mit c |
where('title LIKE(?)', "d_") | Titel aus zwei Buchstaben beginnend mit d |
where('title LIKE(?)', "_e") | Titel aus zwei Buchstaben, der mit e endet |
app/models/post.rb
def self.search(search)
return Post.all unless search
Post.where('body LIKE(?)', "%#{search}%")
end
post_controller.rb
def search
@posts = Post.search(params[:keyword])
end
Angenommen, Sie erstellen eine Teilvorlage mit der ** Rendermethode **. ** post ** rechts von {post: post} ist ** post ** als Variable in jeder Methode und gibt eine Instanz von ** post ** an. Der ** Beitrag ** links repräsentiert den Namen der Variablen in der Teilvorlage.
search.html.erb
<% @posts.each do |post| %>
<%= render partial: "post", locals: { post: post } %>
<% end %>
Die Implementierung der Suchfunktion war relativ einfach abzuschließen. Ich werde andere Funktionen implementieren und meine Möglichkeiten erweitern. Danke, dass du bis zum Ende zugesehen hast: grins:
Recommended Posts