2017-04-15 60 views
-1

我是Ruby on Rails中的新成員。我一直試圖在控制器中定義一個方法的路由,但錯誤顯示「沒有路由匹配[GET]」。 下面是代碼Ruby on Rails中沒有匹配的路徑錯誤

donations Controller: 

before_action :set_donation, only: [:show, :edit, :update, :destroy, :create_user_account] 
    before_action :set_campaign, only: [:new, :create_user_account] 
//this is the method that i want to call 
    def create_user_account 
    end 

這裏是我的路由文件

Rails.application.routes.draw do 
    resources :donations, except: [:new, :create] 
get 'donations/create_user_account' => 'donations#create_user_account' 
    resources :campaigns do 
    resources :donations, only: [:new, :create, :create_user_account] 
    get 'donations/create_user_account' => 'donations#create_user_account' 
    end 
    resources :organizations 

    devise_for :users 

    root to: "campaigns#latest" 
end 

的路線顯示我的路由名稱,但是當我打的路線出現「不匹配」的路線錯誤。

ROUTE1: campaign_donations_create_user_account_path GET /campaigns/:campaign_id/donations/create_user_account(.:format) 捐款#create_user_account 路徑2:

donations_create_user_account_path GET /donations/create_user_account(.:format)  
donations#create_user_account 

我想打電話路線2,但沒有路由工作

我打電話給我的路線2這樣

http://localhost:3000/donations/create_uer_account 

這是錯誤 enter image description here

+0

你做錯了,你應該閱讀路線類型。 http://stackoverflow.com/questions/3028653/difference-between-collection-route-and-member-route-in-ruby-on-rails或在URL中發送ID作爲查詢參數。 –

+0

你正在附上一個與錯字相關的錯誤create_uer_account ... – catch22

+1

@jenvvv編輯但同樣的錯誤,根本不是問題。 – john

回答

1

的錯誤是因爲該行

resources :donations, except: [:new, :create] 

是別人routes.rb之前。 Rails與它在routes.rb文件中找到的第一個路由相匹配。

它應該是這個樣子

get 'donations/create_user_account' => 'donations#create_user_account' 
resources :donations, except: [:new, :create] 

然後Rails的與你create_user_account首先匹配。

+0

後更改代碼根據您的意見錯誤顯示 的ActiveRecord :: RecordNotFound在DonationsController#create_user_account 無法與 'ID'= 高清set_donation 「@donation = Donation.find(PARAMS [找到捐贈:id])「 end 爲什麼它總是在set_donation方法內? – john

+0

因爲你在'before_action'聲明瞭 – Iceman

+1

仍然是同樣的錯誤,我的代碼是 before_action:set_donation,只有:[:create_user_account,:show,:edit,:update,:destroy] – john

相關問題