0
//sessions controller
なぜレールサーバーはGET要求を送信していますが、私はform_forのPOST要求を出しましたか?
def welcome
@user = User.new
end
def create
user = User.find_by_username(params[:username])
if user.authenticate(params[:password])
session[:user_id] = user.id
redirect_to root_path
else
redirect_to user_login_path
end
end
//view this one doesn't work it sends a GET request
<%= form_for @user, url: create_user_session_url do |f| %>
<div class="form_group">
<%= f.text_field :username, placeholder: "Username", class: "form-control" %>
</div>
<div class="form_group">
<%= f.password_field :password, placeholder: "Password", class: "form-control" %>
</div>
<div class="form-group">
<%= f.submit "Login", class: "form-control" %>
</div>
<% end %>
//view one works and successfully sends POST request
<%= form_for @user, url: create_user_registration_url do |f| %>
<div class="form_group">
<%= f.text_field :username, placeholder: "Username", class: "form-control" %>
</div>
<div class="form_group">
<%= f.email_field :email, placeholder: "Email", class: "form-control" %>
</div>
<div class="form_group">
<%= f.password_field :password, placeholder: "Password", class: "form-control" %>
</div>
<div class="form_group">
<%= password_field_tag "confirm_password", nil, placeholder: "Confirm Password", class: "form-control" %>
</div>
<div class="form-group">
<%= f.submit "Sign Up", class: "form-control" %>
</div>
<% end %>
私はすくいデシベルを行うとき、これは、私のフォームです:コンソール、create_user_session
内のルートは明らかにそのポストを言います。
Prefix Verb URI Pattern Controller#Action
root GET / application#index
create_user_registration POST /user/login(.:format) user/registrations#create
destroy_user_registration DELETE /user(.:format) user/registrations#destroy
user_registration GET /user(.:format) user/registrations#show
PATCH /user(.:format) user/registrations#update
PUT /user(.:format) user/registrations#update
new_user_session GET /user/welcome(.:format) user/sessions#welcome
create_user_session POST /user/session(.:format) user/sessions#create
destroy_user_session DELETE /user/logout(.:format) user/sessions#destroy
しかし、私の愚かなサーバーは、その私は同じ構文で別のフォームを持っており、それが正常にPOST
リクエストを送信する原因私は本当に困惑しているGET
要求、Started GET "/user/welcome"
を送信すると考えています。私もエラーがないので、デバッグするのは難しいです。
私は明確ではなかったが、私のサーバーはPOST要求を送信しようとしない。私はちょうどそれを試してみました
<%= form_for @user, url: create_user_session_url, method: :post do |f| %>
、それは何もしません。 – LeongZeno
':post'をシンボルとして渡せますか?私の答えを更新しました – Alfie
助けてくれてありがとう、ありがとう、私は何が間違っていたかを考え出しました。私はそのフォームを他のものにレンダリングして、リクエストを送るようにしました。私はあなたがしたことを試しましたが、私はこれをデバッグすることについては考えていませんでした。 – LeongZeno