Überraschenderweise kann ich diesen einfachen form_tag nicht machen, um mir die Parameter zu schicken .. für eine Stunde .. Es hat bei meinem letzten Projekt funktioniert. Ich habe eine Kopie davon gemacht, eine andere Ruby-Version benutzt und jetzt funktioniert es nicht. Habe viele Dinge versucht, aber es funktioniert einfach nicht.Rails form_tag funktioniert nicht mehr
Ich habe diesen Block:
<div class="row">
<div class="col-md-8">
<div id="light-pagination" class="pagination"></div>
</div>
<div class="col-md-4" style='float:right'>
<%= form_tag("/go_to_show_question", class: "form-inline", method: "get") do %>
<%= hidden_field_tag(:id, @question_group.id) %>
<%= search_field_tag :question, '', size: 5, class: 'form-control' %>
<%= submit_tag r("tests.go_to_question"), class: 'btn btn-default' %>
<% end %>
</div>
</div><br>
Ich bin eine Nummer und klicken Eingabe auf ‚Gehe zu hinterfragen‘. Und es sendet nur:
{"controller"=>"question_groups", "action"=>"go_to_show_question", "locale"=>"en"}
Wo ist 'ID' und 'Frage'? Warum werden sie nicht zusammen geschickt?
Ich glaube, das ist etwas Dummes, aber ich kann nicht finden, was .. Es hat früher funktioniert. Ich habe es nicht geändert, glaube ich.
Dies ist die erzeugte HTML
<div class="row">
<div class="col-md-8">
<div id="light-pagination" class="pagination"></div>
</div>
<div class="col-md-4" style='float:right'>
<form class="form-inline" action="/go_to_show_question" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓" />
<input type="hidden" name="id" id="id" value="28" />
<input type="search" name="question" id="question" value="" size="5" class="form-control" />
<input type="submit" name="commit" value="Go to question" class="btn btn-default" />
</form>
</div>
</div><br>
Routen:
Rails.application.routes.draw do
... other routes ...
scope ":locale", locale: /#{I18n.config.available_locales.join("|")}/ do
... other routes ...
get 'go_to_show_question' => 'question_groups#go_to_show_question'
... other routes ...
end
get '*path', to: redirect("/#{(I18n.locale)}/%{path}"), constraints: lambda { |req| !req.path.starts_with? "/#{I18n.locale}/" }
match '', to: redirect("/#{(I18n.locale)}"), via: [:get, :post, :put, :delete]
end
Controller:
class QuestionGroupsController < ApplicationController
def go_to_show_question
redirect_to show_question_group_path(:id => params[:id], :question => (params[:question].to_i - 1))
end
end
Diese Anfrage mein Controller erreicht. aber ohne ID, Frage params.
Und das ist das Log
Processing by QuestionGroupsController#go_to_show_question as HTML
Parameters: {"locale"=>"en"}
User Load (0.2ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 ORDER BY `users`.`id` ASC LIMIT 1
{"controller"=>"question_groups", "action"=>"go_to_show_question", "locale"=>"en"}
Redirected to http://localhost:3000/en/show_question_group?question=-1
Completed 302 Found in 2ms (ActiveRecord: 0.2ms)
zeigen Sie mir Ihre Routen – uzaif
sein Aussehen wie Sie erklären Routen in 'locale' scop – uzaif
' go_to_show_question /: Diese Route id' versucht – uzaif