Ruby on rails 如何仅在用户按search时呈现搜索结果
有人知道如何只在单击搜索按钮后显示搜索结果吗 目前,我的页面正在显示my@flights.each的所有内容。但我只希望这些信息在他们单击搜索后可见: my index.html.erbRuby on rails 如何仅在用户按search时呈现搜索结果,ruby-on-rails,ruby,ruby-on-rails-5,Ruby On Rails,Ruby,Ruby On Rails 5,有人知道如何只在单击搜索按钮后显示搜索结果吗 目前,我的页面正在显示my@flights.each的所有内容。但我只希望这些信息在他们单击搜索后可见: my index.html.erb <h1>Flights#index</h1> <p>Find me in app/views/flights/index.html.erb</p> From Airport: <%= form_for(flights_index_path, met
<h1>Flights#index</h1>
<p>Find me in app/views/flights/index.html.erb</p>
From Airport:
<%= form_for(flights_index_path, method: :get) do %>
<%= text_field_tag :from_airport_id, params[:from_airport_id] %>
<%= submit_tag 'Search' %>
<% end %>
<% @flights.each do |f| %>
<br>
<br>
Flight from <%= f.from_airport_id %>
Arriving at <%= f.to_airport_id %>
<% end %>
我的控制器
class FlightsController < ApplicationController
def index
if params[:from_airport_id]
@flights = Flight.where('from_airport_id LIKE ?', "%#{params[:from_airport_id]}%")
else
@flights = Flight.all
end
end
private
def flights_path
params.require(:flight).permit(:flight, :from_airport_id)
end
end
我相信这是因为你有@flights=flights.all在else条件下。当没有查询时,如点击提交按钮并传递参数后,默认显示所有航班。我会把这条线拿出来,只有
def index
if params[:from_airport_id]
@flights = Flight.where('from_airport_id LIKE ?', "%#{params[:from_airport_id]}%")
else
@flights = []
end
end
或者,您可以从flights搜索中获得AJAX请求,并以这种方式呈现表单 如果这不起作用或者你有其他问题,请告诉我!