2017-04-06 146 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| %> 
...