我为以下控制器定义了以下路由get 'search', to: 'search#show'
:
class SearchController < Application Controller
def show
@users = User.where( { username: params[:query] } )
respond_to do |format|
format.html
end
end
end
我在views/application/_search.html.erb
上有一张可以搜索的表格
<%= form_with method: :get, url: search_path do |form| %>
<div class="field">
<%= form.text_field :query, placeholder: "Search users" %>
</div>
<% end %>
它通过<%= render "search" %>
行在layouts/_header.html.erb
中呈现。
每当我执行搜索时,我都会得到以下控制台输出:
Started GET "/search?utf8=%E2%9C%93&query=hello" for 127.0.0.1 at 2018-06-21 18:37:20 -0400
Processing by SearchController#show as JS
Parameters: {"utf8"=>"✓", "query"=>"hello"}
Rendering search/show.html.erb within layouts/application
Rendered search/show.html.erb within layouts/application (0.3ms)
Rendered application/_logo.html.erb (1.2ms)
Rendered application/_search.html.erb (0.8ms)
Rendered application/_flashes.html.erb (0.5ms)
User Load (0.3ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
↳ app/helpers/sessions_helper.rb:7
Rendered layouts/_header.html.erb (242.0ms)
Rendered layouts/_footer.html.erb (5.1ms)
Completed 200 OK in 407ms (Views: 366.0ms | ActiveRecord: 1.8ms)
看起来页面正在呈现,但是我的浏览器不会去任何地方。为什么会这样呢?目前,view/search/show.html.erb
只包含Rails生成的默认文本。
发布于 2018-06-22 07:20:14
因为它被呈现/响应为JS。
SearchController#show as JS对
的处理
您需要使用HTML进行响应,以便浏览器可以直接呈现,或者使用一些前端javascript来处理响应。
https://stackoverflow.com/questions/50978410
复制相似问题