/ / Brak pasującego błędu trasy w Ruby on Rails - ruby-on-rails, routing

Brak pasującego błędu trasy w Ruby on Rails - ruby-on-rails, routing

Jestem nowy w Ruby on Rails. Próbowałem przez dwa dni zdefiniować trasę dla metody w kontrolerze, ale pokazuje błąd "Brak dopasowania trasy [GET]". Oto kod

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

Oto mój plik trasy

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

Trasy pokazują moją nazwę trasy, ale kiedy trafię na trasę, pojawia się błąd "brak dopasowania" trasy.

route1: campaign_donations_create_user_account_path GET /campaigns/:campaign_id/donations/create_user_account(.:format) darowizny # create_user_account route2:

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

Chcę połączyć się z trasą 2, ale żadna trasa nie działa

Tak nazywam moją trasę 2

http://localhost:3000/donations/create_uer_account

To jest błąd wprowadź opis obrazu tutaj

Odpowiedzi:

1 dla odpowiedzi № 1

Błąd jest związany z tym wierszem

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

jest przed innymi w routes.rb. Railsuje mecze z pierwszą trasą znalezioną w pliku routes.rb.

Powinno to wyglądać mniej więcej tak

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

następnie Rails pasuje do twojego create_user_account pierwszy.