2013-01-22 157 views
0

当我提交下面的new.html.erb时,它会跳转到http://localhost:3000/user/new_user_by_admin,它显示错误:没有路由与{:method =>:post}匹配“/ user/new_user_by_admin”。我想将此页面提交到http://localhost:3000/users/new_user_by_admin。我需要做什么改变?用户控制器在rails中没有路由匹配2.3.8

<% form_for :user,:url => url_for { :controller => :user ,:action => :new_user_by_admin, :method => :post } do |f| %> 
    <p><%= f.label :login %><br/> 
      <%= f.text_field :login %></p> 

      <p><%= f.label :name %><b`enter code here`r/> 
      <%= f.text_field :name %></p> 

      <p><%= f.label :email %><br/> 
      <%= f.text_field :email %></p> 

      <p><%= f.label :password %><br/> 
      <%= f.password_field :password %></p> 

      <p><%= f.label :password_confirmation, 'Confirm Password' %><br/> 
      <%= f.password_field :password_confirmation %></p> 
      <p><%= submit_tag 'Sign up' %></p> 
     <% end %> 

代码是:

class UsersController < ApplicationController 
def new_user_by_admin 
     @user=User.new(params[:user]) 
     @user.save 
     redirect_to("https://stackoverflow.com/users/") 
    end 
end 

为routes.rb中的代码是:

ActionController::Routing::Routes.draw do |map| 
    map.home '' , :controller => 'users', :action => 'index' 
    map.logout '/logout', :controller => 'sessions', :action => 'destroy' 
    map.login '/login', :controller => 'sessions', :action => 'new' 
    map.register '/register', :controller => 'users', :action => 'create' 
    map.signup '/signup', :controller => 'users', :action => 'new' 
    map.adduser '/new_user_by_admin', :controller => 'users', :action => 'new_user_by_admin', :method => :post 

    map.resources :users 
    map.resource :session 
    map.connect ':controller/:action/:id' 
    map.connect ':controller/:action/:id.:format' 
end 

帮助!!

+0

请使用rake检查:路线 –

回答

0

你的配对是错误的。它应该是:

当你这样做:

map.adduser '/new_user_by_admin', :controller => 'users', :action => 'new_user_by_admin', :method => :post 

你相匹配的行动网址本地主机:3000/new_user_by_admin,而不是你真正想要的。请尝试以下方法之一:

map.adduser '/users/new_user_by_admin', :controller => 'users', :action => 'new_user_by_admin', :method => :post 

将匹配您的控制器动作为localhost:3000 /用户/ new_user_by_admin

+0

map.new_user_by_admin'/ new_user_by_admin',:controller =>'users',:action =>'new_user_by_admin' –

0
map.new_user_by_admin '/new_user_by_admin', :controller => 'users', :action => 'new_user_by_admin' 

这改变了我都做了上述问题中的routes.rb文件中的解决方案

相关问题