2014-02-07 44 views
2

我提交表單後出現此錯誤。未定義的方法`user_url'爲#<UsersController:0x007fda4c2c5208>

未定義的方法`user_url」爲#

我沒有用我的路線文件resources :users,我想這就是爲什麼我得到的錯誤。

routes.rb

TaskManager::Application.routes.draw do 
    get "welcome/index" 
    root 'welcome#index' 

    get 'users/new' => 'users#new' 
    post 'users/' => 'users#create' 
    post 'users/:first_name' => 'users#show' 
end 

和我users_controller.rb

class UsersController < ApplicationController  
def new 
    @user = User.new 
end 

def create 
    @user = User.new(user_params) 
    @user.save 

    if @user.save 
    redirect_to @user 
    else 

    end 
end 

def show 
    @user = User.find(params[:first_name]) 
end 

private 
    def user_params 
    params.require(:user).permit(:first_name, :last_name, :email) 
    end 
end 
+1

你有什麼對'用戶#show'而不是一個''POST' GET'? –

+1

只需使用RESTful資源並停止與框架對抗。 –

+0

如果你只想要三條路線,你可以做'resources:users,:only => [:new,:create,:show]' – Santhosh

回答

2

從你的代碼,我猜你想要的路線是post 'users/' => 'users#create'。要做到這一點,我需要做的就是將該行更改爲post 'users/' => 'users#create', :as => 'user'

以供將來參考:http://guides.rubyonrails.org/routing.html

相關問題