Rake routes'match'mapping to the wrong action
问题描述:
我的问题与映射到使用命名路由的控制器/操作有关。我试图将'/ profile'映射到'customers#show'。我的路线文件看起来像这样:Rake routes'match'mapping to the wrong action
root :to => 'pages#home'
## named routes
match "profile" => "customers#show", :as => 'profile'
match 'signin' => 'sessions#new', :as => 'signin'
match 'signout' => 'sessions#destroy', :as => 'signout'
resources :customers do
member do
get 'add_card'
post 'submit_card'
end
end
resources :payments, :only => [:show, :new]
delete 'payments/delete_recurring_payment'
post 'payments/submit_non_recurring'
post 'payments/submit_recurring'
resources :sessions, :only => [:create, :destroy, :new]
运行“耙路线”给了我这样的:
root / pages#home
profile /profile(.:format) customers#show
signin /signin(.:format) sessions#new
signout /signout(.:format) sessions#destroy
add_card_customer GET /customers/:id/add_card(.:format) customers#add_card
submit_card_customer POST /customers/:id/submit_card(.:format) customers#submit_card
customers GET /customers(.:format) customers#index
POST /customers(.:format) customers#create
new_customer GET /customers/new(.:format) customers#new
edit_customer GET /customers/:id/edit(.:format) customers#edit
customer GET /customers/:id(.:format) customers#show
PUT /customers/:id(.:format) customers#update
DELETE /customers/:id(.:format) customers#destroy
new_payment GET /payments/new(.:format) payments#new
payment GET /payments/:id(.:format) payments#show
这里就是我难倒。当我去为localhost:3000/profile文件,我得到一个错误的路由这样说:
No route matches {:action=>"edit", :controller=>"customers"}
这似乎很奇怪,因为确实是“客户#编辑”的路线,由于我的客户声明作为一种资源。
然而,当我去的“localhost:3000 /登入”我被路由到“客户#秀”这是我想“/资料”来的路线。
好像我是航线“一次性”在我的路线文件,但我不知道为什么。任何帮助将非常感激。
感谢
更新1:添加我的客户控制器
class CustomersController < ApplicationController
layout "payments_layout"
def show
@customer = current_user
get_account_info(@customer)
get_payment_history(@customer, 10)
end
def new
@title = 'Create an account'
@customer = Customer.new
end
def edit
@customer = current_user
get_account_info(@customer)
end
def update
@customer = current_user
if @customer.update(params[:customer])
redirect_to @customer
else
@card_message = "Use this form to add a credit card to your account. You must have a credit card associated with your account in
in order to make payments on our system."
get_account_info(@customer)
render 'edit'
end
end
def create
@customer = Customer.new(params[:customer])
if @customer.save_and_get_stripe_id
sign_in(@customer)
redirect_to @customer
else
@title = 'Create an account'
render 'new'
end
end
def add_card
@customer = current_user
get_account_info(@customer)
@card_message = "Use this form to add a credit card to your account. You must have a credit card associated with your account in
in order to make payments on our system."
end
def submit_card
@customer = current_user
res = @customer.add_or_update_card(params)
if res
redirect_to @customer
else
@error = res
customer.get_account_info(@customer)
render 'add_card'
end
end
end
答
检查你的意见。
你有一个链接编辑您的用户资料?
好像你到正确的控制器和实际行动路线,但有一些链接,耙不能路由,例如你不会将ID传递给你的edit_customer_path链接。
你可以帮助你的客户控制器吗? – damienbrz 2013-02-21 23:44:59