2013-01-22 1 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에 제출하겠습니다. 어떤 변화가 필요합니까? 사용자 컨트롤러레일에서 일치하는 경로가 없습니다. 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 %> 

코드는 다음과 같습니다 routes.rb에 대한

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

코드는 다음과 같습니다

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 : routes –

답변

0

일치하는 부분이 잘못되었습니다. 그것은해야한다 :

당신이 할 때 : 3000/new_user_by_admin 대신 당신이 실제로 원하는 것을 : 당신은 로컬 호스트를 URL로 행동을 일치하는

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

.

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', : 컨트롤러 => '사용자', : 조치 => 'new_user_by_admin' –

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

이 난 routes.rb 파일에 위의 문제의 해결을 위해 수행 한 변경

관련 문제