gpt4 book ai didi

ruby-on-rails - Rails 表单发出 GET 请求而不是 POST 请求

转载 作者:行者123 更新时间:2023-12-04 20:53:11 25 4
gpt4 key购买 nike

我正在制作一个 Rails 3.1 应用程序并且有一个工作正常的注册表单,但我似乎已经改变了一些东西来破坏它..我正在使用 Twitter bootstrap 和 twitter_bootstrap_form_for gem。我做了一些与表单字段格式有关的更改,但更重要的是,当我提交注册表单以创建新用户时,信息显示在 URL 中,如下所示:

编辑:这是在最新版本的 Chrome 和 Firefox 中发生的

http://localhost:3000/?utf8=%E2%9C%93&authenticity_token=UaKG5Y8fuPul2Klx7e2LtdPLTRepBxDM3Zdy8S%2F52W4%3D&user%5Bemail%5D=kevinc%40example.com&user%5Bpassword%5D=testing&user%5Bpassword_confirmation%5D=testing&commit=Sign+Up

这是表单的代码:

    <div class="span7">
<h3 class="center" id="more">Sign Up Now!</h3>
<%= twitter_bootstrap_form_for @user do |user| %>
<%= user.email_field :email, :placeholder => 'me@example.com' %>
<%= user.password_field :password %>
<%= user.password_field :password_confirmation, 'Confirm Password' %>
<%= user.actions do %>
<%= user.submit 'Sign Up' %>
<% end %>
<% end %>
</div>

这是用户 Controller 的代码:
    class UsersController < ApplicationController
def new
@user = User.new
end

def create
@user = User.new(params[:user])
if @user.save
redirect_to about_path, :notice => "Signed up!"
else
render 'new'
end
end
end

不确定您是否需要更多,但如果需要,请告诉我!谢谢!

编辑:为了调试,我尝试指定 :post 并使用普通的 form_for
     <%= form_for(@user, :method => :post) do |f| %>
<div class="field">
<%= f.label :email %>
<%= f.email_field :email %>
</div>
<div class="field">
<%= f.label :password %>
<%= f.password_field :password %>
</div>
<div class="field">
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation %>
</div>
<div class="actions"><%= f.submit "Sign Up" %></div>
<% end %>

这给了我与上述相同的问题。

添加routes.rb:
    Auth31::Application.routes.draw do

get "home" => "pages#home"
get "about" => "pages#about"
get "contact" => "pages#contact"
get "help" => "pages#help"
get "login" => "sessions#new", :as => "login"
get "logout" => "sessions#destroy", :as => "logout"
get "signup" => "users#new", :as => "signup"
root :to => "pages#home"

resources :pages
resources :users
resources :sessions
resources :password_resets
end

最佳答案

问题是我在 Rails form_for 生成自己的时候指定了 HTML 表单标签。请参阅下文以向表单添加类:

<%= form_for(@user, :html => { :class => "form-stacked"} )  do |f| %>

这工作得很好。我仍然不确定为什么有 2 个标签会生成 GET 请求。

关于ruby-on-rails - Rails 表单发出 GET 请求而不是 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8098491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com