2013-03-13 79 views
0

我有一个Rails 3.1.12应用这条路线设置:“访问named_route_path” 引发ArgumentError

get '/compte/activer/:username/:token' => 'create_user#activate', :as => :create_user_activate 

这里的要求规格:

describe "#activate with valid token" do 
    it "activates the account" do  
    user = User.create_basic("conradk", "[email protected]", "Conrad K.", "password", "password", "Hello world!") 

    visit create_user_activate_path(:username => user.username, :token => user.activation_token) 

    page.should have_content(I18n.t('activerecord.success.messages.account_activated')) 
    end 
end 

这里的控制器:

class CreateUserController < ApplicationController 
    def activate username, token 

    end 
end 

当我运行规格时,出现此错误:

Failure/Error: visit create_user_activate_path(:username => user.username, :token => user.activation_token) 
    ArgumentError: 
     wrong number of arguments (0 for 2) 

我做错了什么?

回答

2

试试这个

class CreateUserController < ApplicationController 
    def activate 

    end 
end 
+0

哦,对了,我还是习惯Symfony的风格路由(从PHP来)。谢谢回复! :) – conradkdotcom 2013-03-13 18:29:24

2

你的控制器方法应该象下面这样定义:

class CreateUserController < ApplicationController 
    def activate 
    #params will have your username and token 
    user_name = params[:username] 
    token = params[:token] 
    end 
end 
相关问题