我正在製作一個Rails 3.1應用程序,並且有一個工作正常的註冊表單,但我好像改變了一些東西來打破它..我使用Twitter引導程序和twitter_bootstrap_form_for gem 。我做了一些與表單字段格式無關的更改,但更重要的是,當我提交註冊表單以創建新用戶時,信息顯示在URL中,如下所示:Rails表單發出GET請求而不是POST請求
編輯:這是在最新的Chrome版本和Firefox發生
這裏是表單代碼:
<div class="span7">
<h3 class="center" id="more">Sign Up Now!</h3>
<%= twitter_bootstrap_form_for @user do |user| %>
<%= user.email_field :email, :placeholder => '[email protected]' %>
<%= user.password_field :password %>
<%= user.password_field :password_confirmation, 'Confirm Password' %>
<%= user.actions do %>
<%= user.submit 'Sign Up' %>
<% end %>
<% end %>
</div>
下面是UsersController代碼:
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
不知道是否有更多的需要,但如果是這樣,讓我知道!謝謝!
編輯:爲了調試我試圖確定:職位,也使用普通的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
我試過指定:張貼無效。我試着用一個簡單的form_for。如果您不介意查看,請將上面的代碼添加爲編輯。仍然有相同的問題.. – kcurtin
你是對的,請原諒我的錯字。你可以發佈你的'routes.rb'嗎? –
沒問題,我做了一個編輯,因爲我意識到我聽起來有點sn :) :) – kcurtin