2016-10-01 6 views
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| %> 

答えて

1

は、このようなアクションの種類を指定します。サーバはまだGETリクエストを送信します
+0

、それは何もしません。 – LeongZeno

+0

':post'をシンボルとして渡せますか?私の答えを更新しました – Alfie

+0

助けてくれてありがとう、ありがとう、私は何が間違っていたかを考え出しました。私はそのフォームを他のものにレンダリングして、リクエストを送るようにしました。私はあなたがしたことを試しましたが、私はこれをデバッグすることについては考えていませんでした。 – LeongZeno

関連する問題