Я боролся с этим последние два дня, и я в замешательстве. У меня есть простой form_tag
, который отправляет с помощью Ajax, используя remote: true
помощник. Я пытался получить доступ к значению из формы в контроллере, используя params[:query]
, но я продолжаю получать nil
.
_form.html.erb
<%= form_tag queries_path, method: :get, remote: true do %>
<%= text_field_tag :query %><br>
<%= submit_tag 'Search', name: nil, class: 'submit' %>
<% end %>
Вверху: мне кажется, это довольно прямолинейно.
queries_controller.rb
def index
@search_term = params[:query] #value is nil
gon.queries = Query.api_response(@search_term)
respond_to do |format|
format.js
format.html
end
end
application.html.erb
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css">
<%= stylesheet_link_tag "application" %>
<%= Gon::Base.render_data %>
<%= include_gon(:init => true) %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/plug-ins/1.10.19/api/sum().js"></script>
<link href="https://fonts.googleapis.com/css?family=Righteous" rel="stylesheet">
</head>
<%= render 'shared/nav' %>
<body>
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
<%= yield %>
</body>
</html>
Журнал консоли
Started GET "/queries" for 148.75.220.61 at 2018-08-29 01:26:01 +0000
Cannot render console from 148.75.220.61! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by QueriesController#index as HTML
Rendering queries/index.html.erb within layouts/application
User Load (0.8ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2 [["id", 1], ["LIMIT", 1]]
Rendered shared/_form.html.erb (1.3ms)
Rendered queries/index.html.erb within layouts/application (6.9ms)
Rendered shared/_nav.html.erb (1.5ms)
Completed 200 OK in 1180ms (Views: 113.7ms | ActiveRecord: 0.8ms)
Started GET "/queries?utf8=%E2%9C%93&query=egg&search=" for 148.75.220.61 at 2018-08-29 01:26:07 +0000
Cannot render console from 148.75.220.61! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by QueriesController#index as JS
Parameters: {"utf8"=>"✓", "query"=>"egg", "search"=>""}
Rendering queries/index.js.erb
Rendered queries/index.js.erb (0.8ms)
Completed 200 OK in 1132ms (Views: 6.6ms | ActiveRecord: 0.0ms)
Я замечаю, что когда помощник метода remote: true
не в форме, я могу получить доступ к параметрам формы в контроллере, но для этого требуется загрузка страницы и потеря параметров. Я чувствую, что, может быть, я что-то упустил. Любая помощь будет принята с благодарностью.