簡體   English   中英

Ruby on Rails POST請求失敗

[英]Ruby on Rails POST request fails

事情就這樣了,我想在Ruby on Rails的頁面中寫一個登錄名,當url為localhost:3000/admin ,我將得到需要填寫的頁面。填寫完表單后,我提交按鈕和表單應允許使用post方法進行create操作,但是仍可與get方法和new操作一起使用。

發生什么事了?

這是routes.rb文件:

     Prefix Verb          URI Pattern                Controller#Action
new_admin_users GET      /admin/users/new(.:format)  admin/users#new
   admin_users  POST     /admin/users(.:format)      admin/users#create
         admin  GET      /admin(.:format)            admin/users#new
                POST     /admin(.:format)            admin/users#create
    posts_home  GET      /posts/home(.:format)       redirect(301, /posts)
   posts_about  GET      /posts/about(.:format)      redirect(301, /about)

然后這是新動作

  <form class="form-signin">
    <h2 class="form-signin-heading">Please sign in</h2>
    <%= form_for :user,url:admin_users_path do |f| %>
      <p>
        <%= f.label :name%><br>
        <%= f.text_field :name ,class:"form-control" %>
      </p>
      <p>
        <%= f.label :pass%><br>
        <%= f.text_field :pass,class:"form-control" %>
      </p>
      <div class="checkbox">
        <label>
          <input type="checkbox" value="remember-me"> Remember me
        </label>
      </div>
      <p>
        <%= f.submit'Sign in', :class=>"btn btn-lg btn-primary btn-block" %>
      </p>
      <%= link_to 'Back', posts_path %>
    <%end%>
  </form>

這是routes.rb

   Rails.application.routes.draw do
     namespace :admin do
       resources :users
       get "",  to:"users#new"
       post "", to:"users#create"
     end
     get "/posts/home",  to: redirect("/posts")
     get "/posts/about", to: redirect("/about")
     resources :posts do
       resources :comments
     end
     root "posts#index"
     get "/home",to: "posts#index"
     get "/about",to: "posts#about"
   end

如果您有意見,請告訴我,謝謝。

您必須在控制器內部構建實際的User對象。 嘗試在表單中使用它,而不是symbol :user

<%= form_for @user, url: admin_users_path do |f| %>
...

您可以嘗試顯式指定方法post而不是

<%= form_for :user,url:admin_users_path do |f| %>

用這個:

 <%= form_for :user,url:admin_users_path, method: :post do |f| %>

還要以這種方式創建的表單檢查創建的動作

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM