2016-05-31 36 views
0

我正在嘗試將條紋支付集成到我的腳手架腳本(RoR)中,並且當前出現以下錯誤。使用Ruby將條紋支付集成到腳手架中

這裏低於下面的錯誤消息,並將它突出顯示 「@pin = Pin.find(PARAMS [:ID])」:

ActiveRecord::RecordNotFound in PinsController#show 

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

    def correct_user 

這裏是我的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 

我如何解決這個問題並開始正確的道路?謝謝!

回答

1

你打什麼路線?如果是管理員路由,則已將路由設置爲pin_id而不是id。因此,改變你的路由是目前

get '/:pin_id', to: :pin 

get '/:id', to: :pin 

或更改控制器尋找params[:pin_id]

+0

謝謝Mike!我只是嘗試將路由更改爲您所建議的內容,但仍然遇到同樣的錯誤消息,它在控制器上的「pin = Pin.find(params [:id])找不到Pin'id'= 。只是要清楚,你是否建議我將它改爲:@ pin = Pin.find(params [:pin_id]而不是? –

+0

對於控制器中的「@pin = Pin.find(params [:id])」只是將其更改爲:「@pin = Pin.find(params [:pin_id]」並獲得「PinsController#index中的SyntaxError」意外關鍵字結束,即使語法看起來不正確,這裏有什麼錯誤? –

+0

您沒有關閉你的括號 –