2016-05-31 3 views
0

Ich versuche Stripe-Zahlungen in meine Pin-Scaffolding (RoR) zu integrieren und bekomme derzeit den folgenden Fehler. HierIntegration von Stripe-Zahlungen in Pin-Gerüst mit Ruby

ist die folgende Fehlermeldung unten, und es unterstreicht "@pin = Pin.find (params [: id])":

ActiveRecord::RecordNotFound in PinsController#show 

private 
    def set_pin 
    @pin = Pin.find(params[:id]) 
end 

    def correct_user 

Hier sind meine routes.rb

Rails.application.routes.draw do 
    resources :pins 

    devise_for :users 
    root "pins#index" 
    get "about" => "pages#about" #creates about_path 
    get "contact" => "pages#contact" #creates contact_path 
    get "auction" => "pages#auction" #creates auction_path 
    get "terms" => "pages#terms" #creates terms_path 
    post 'send_mail', to: 'contact#send_mail' 
    get 'contact', to: 'contact#show' 

    scope 'pins', controller: :pins do 
    scope '/:id' do 
    post 'bid', to: :bid 
    end 
    end 

    scope 'admin', controller: :admin do 
    scope 'pins' do 
     get '/:pin_id', to: :pin 
    end 
end 
end 

Wie behebe ich dieses Problem und starte den richtigen Weg? Vielen Dank!

Antwort

1

Welchen Weg schlagen Sie? Wenn es sich um die Administratorroute handelt, haben Sie die Route so festgelegt, dass sie den Parameter pin_id nicht id übergibt. So Ihre Route ändern, die derzeit

get '/:pin_id', to: :pin 

zu

get '/:id', to: :pin 

Oder Ihr Controller für params[:pin_id] suchen ändern.

+0

Danke Mike! Ich habe gerade versucht, die Routen zu ändern, was Sie vorgeschlagen, aber immer noch in der gleichen Fehlermeldung, wo es "Pin mit 'ID' = Empfangsbestätigung" für @ Pin = Pin.find (params [: ID]) am Controller nicht finden konnte . Nur um klar zu sein, meinst du, ich ändere es einfach in: @ pin = Pin.find (params [: pin_id] statt? –

+0

Für "@pin = Pin.find (params [: id])" am Controller, ich habe es nur geändert in: "@pin = Pin.find (params [: pin_id]" und bekomme "SyntaxError in PinsController # index" unerwartetes Schlüsselwortende, obwohl die Syntax richtig aussieht. Was könnte hier falsch sein? –

+0

Du hast es nicht getan schließe deine Klammer –