2016-06-22 5 views
0

で一定の誤差を未初期化Railsはブール変数

uninitialized constant InvitationsController

InvitationsControllerのメソッドは次のようになります。

def sumbit_invitation 
    @invi = @invitations.find(params[:id]) 
    @invi.update_attributes(accepted: true) 
end 

経路は:

あなたのルートが正しいことを確認するために

1/runコマンドrake routes

+0

あなたInvitationsControllerは 'クラスInvitationsController spickermann

+0

いいえ、 'ControlPanel :: InvitationsController

答えて

0

は、私はあなたの問題を解決するには、以下の手順に従うことができます提案しますか?私の意見では 、それは次のようになります。

resources :invitations do 
    member do 
    put :sumbit_invitation 
    end 
end 

2 /あなたのURLが

link_to("Accept", invitation_sumbit_invitation_url(invitations), method: :put)
は正しいパスを取得するためにrake routesを使用し
link_to("Accept", invitations_sumbit_invitation_path(invitations), method: :put)

に変更する必要が正しいことを確認してください

4 /必ずお使いのコントローラというInvitationsControllerが働い

P/S:あなたのroutes.rbをファイルまたはログrake routesを共有する場合、それは良いです

0

あなたのコントローラは、モジュールControlPanelであり、アプリのcontroller'sフォルダのcontrol_panelサブフォルダに住んでいます、あなたのルートには対応するcontroll_panel名前空間が定義されていません。

は、あなたのルートにcontroll_panel名前空間を追加します。

namespace :controll_panel do 
    resources :invitations do 
    put :sumbit_invitation 
    end 
end 

をこれはinvitation_sumbit_invitation_urlは無効になりますし、あなたがadmin_invitation_sumbit_invitation_urlまたはinvitation_sumbit_admin_invitation_urlのようなものに変更する必要があります。私の頭の上から、Railsがどのように命名を処理するのか分かりません。コンソール内でrake routesを使用して、アプリで使用可能なすべてのルート名のリストを取得します。

私は私が読むことをお勧めし、このコンテキスト:The Rails Guide: Routing