Robię aplikację Rails 3.1 i mam formularz rejestracji, który działał dobrze, ale wydawało mi się, że zmieniłem coś, aby go złamać .. Używam Twittera bootstrap i twitter_bootstrap_form_for gem . Wprowadziłem pewną zmianę polegającą na formatowaniu pól formularza, ale co ważniejsze, po przesłaniu formularza rejestracyjnego w celu utworzenia nowego użytkownika informacje są wyświetlane w adresie URL i wyglądają tak:Formularz Railsowy wysyłający żądanie GET zamiast żądania POST
EDYCJA: dzieje się to w najnowszych wersjach Chrome i Firefox
Oto kod do postaci:
<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>
Oto kod na 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
Nie wiem, czy jest ich więcej, ale jeśli tak, daj mi znać! Dziękuję Ci!
Edit: Dla debugowania Próbowałem określając: słupek, a także stosując zwykły 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 %>
To daje mi ten sam problem jak wyżej.
Dodawanie 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
Próbowałem określając: post bezskutecznie. I próbowałem użyć zwykłego form_for. Dodanie powyższego kodu jako edycji, jeśli nie masz nic przeciwko spojrzeniu. Nadal mam ten sam problem .. – kcurtin
Masz rację, przepraszam za literówkę. Czy możesz opublikować swoje 'routes.rb'? –
Nie ma problemu, dokonałem edycji, ponieważ zdałem sobie sprawę, że zabrzmiało to trochę dziwacznie :) – kcurtin