2017-04-06 147 views
0

這裏有一件事情,我想在Ruby on Rails的頁面中寫一個登錄名,當url爲localhost:3000/admin時,我會得到需要填寫的頁面。在我提交的按鈕和表格應該被承認的create行動與post方法,但它仍然適用於get方法和new行動。Ruby on Rails POST請求失敗

它會發生什麼?

這裏是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 

如果你有一些throught,請告訴我,提前致謝!

+0

您分享的'routes.rb',它看起來像'rake routes'的保存。請把'config/routes.rb'。 –

+0

對不起,我忘記了。有路線的代碼.rb –

回答

-1

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

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

使用此:

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

還要檢查在形式創造了這樣的方式

希望創建的動作這有助於

+0

對不起,告訴你方法行不通,謝謝無論如何,你是一個熱心腸的男人〜 –

0

您必須有實際的User構建在您的控制器內的對象。嘗試在表單中使用該符號而不是符號:user

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