2016-07-05 14 views
0

私は前にリストされた予約のIDと情報を保持する別のページにリンクしようとしています。たとえば、予約テーブルの行を一覧表示して情報を表示し、クリック後に予約テーブルを編集するためのボタンを含む例があります。私はボタンを追加し、ページに転送されるとエラーが発生します。経路が一致しません:id => nil

エラー:私はこのIDを取得するにはどうすればよい

ActionController::UrlGenerationError in Reservations#your_reservations 
No route matches {:action=>"edit", :controller=>"reservations", :id=>nil, :reviser_id=>#<Reservation id: 107, user_id: 4, reviser_id: 1, missing required keys: [:id] 

Html.view(your_reservations) "コードの下部にLINK_TOある"

<% @revisers.each do |reviser| %> 
 
\t \t \t <% reviser.reservations.where("status = ?", true).each do |reservation| %> 
 

 
\t \t \t <script> 
 
\t \t \t \t 
 
\t \t \t \t var total = <%= reviser.reservations.where("status = ?", true).sum(:total) %>; 
 
\t \t \t \t $('#sum').html(total); 
 
\t \t \t \t 
 
\t \t \t </script> 
 
\t \t \t <div class="panel-body" style=""> 
 
\t \t \t \t <div style=""> 
 
\t \t \t \t <div class="col-md-12 " style="border:3px solid black;height:108px;max-height:108px;min-width:703px;"> 
 

 
\t \t \t \t \t <!-- first column --> 
 
\t \t \t \t \t <div class="row" style=""> 
 

 

 
\t \t \t \t \t \t <div class="col-sm-3 center " style=""> 
 
\t \t \t \t \t \t \t <div style="margin-left:-45px;"> 
 
\t \t \t \t \t \t \t \t <%= reservation.reviser.essay_type %> 
 
\t \t \t \t \t \t \t </div> 
 
\t \t \t \t \t \t </div> 
 

 

 
\t \t \t \t \t \t <div class="col-sm-2 center " > 
 
\t \t \t \t \t \t \t <div style=" margin-left:-40px;"> 
 
\t \t \t \t \t \t \t <% if reservation.document_file_name != nil %> 
 
\t \t \t \t \t \t \t \t <%= link_to "File Download", reservation.document.url(:original, false), class: "btn btn-download" %> 
 
\t \t \t \t \t \t \t \t <% end %> 
 
\t \t \t \t \t \t \t \t <script type="text/javascript"> 
 
\t \t \t \t \t \t \t \t \t $(":file").filestyle({buttonName: "btn btn-download", iconName: "fa fa-paper", buttonText: "Choose Word Doc", input: false}); 
 
\t \t \t \t \t \t \t \t </script> 
 
\t \t \t \t \t \t \t </div> 
 
\t \t \t \t \t \t </div> 
 
\t \t \t \t \t \t <div class="col-sm-2 center " > 
 
\t \t \t \t \t \t \t <div style="margin-left:35px;"> 
 
\t \t \t \t \t \t \t \t Due 
 
\t \t \t \t \t \t \t </div> 
 
\t \t \t \t \t \t \t 
 
\t \t \t \t \t \t </div> 
 
\t \t \t \t \t \t <div class="col-sm-2 center " > 
 
\t \t \t \t \t \t \t <div style="margin-left:70px;"> 
 
\t \t \t \t \t \t \t \t <%= link_to "Turn In", edit_reviser_reservation_path(reservation), class: "btn btn-download" %> 
 
\t \t \t \t \t \t \t </div> 
 
           <% end %> 
 
           <% end %>

予約コントローラ

before_action :find_reservation, only: [:edit, :update] 
    before_filter :require_permission, only: [:edit, :update] 



def edit 
    end 

    def update 
    if @reservation.update(reservation_params) 
     redirect_to your_reservations_path 
    else 
     render 'edit' 
    end 

    end 


protect_from_forgery except: [:your_reservations] 
def your_reservations 
    @revisers = current_user.revisers 
    @user = current_user 
    @reservations = @reservations 

end 

def completed_file_upload 

end 

def find_reservation 
    @reservation = Reservation.find(params[:id]) 
    end 
    def require_permission 
    @reservation = Reservation.find(params[:id]) 
    if current_user.id != @reservation.user_id 
     redirect_to root_path, notice: "Sorry, you're not allowed" 
    end 

    end 

routes.rbを

get '/your_reservations' => 'reservations#your_reservations' 
get '/your_reservations/completed_file_upload' => 'reservations#completed_file_upload' 

私は本質的に別のページで予約を編集したいと思います!!これどうやってするの?私はページの編集を作成しようとしましたが、間違っているようです。

+0

あなたはリソースを持っている:あなたのルートで予約? – Hardik127

+0

改訂版と予約の関係は何ですか? – oreoluwa

+0

この関係は、ユーザーが予約を行い、改訂者が外部キーとして含まれているという関係です。リマーケティング担当者だけが作成したすべての予約が表示されたページに移動します。リンクをクリックすると、別のビューにリンクして予約ページを編集するためのフォームに記入することができます。改訂者が別の量の情報を予約の無制限列に追加できるようにします。 –

答えて

1

クイックフィックス:

edit_reviser_reservation_path(reservation.reviser, reservation) 
+0

これは動作します!私はそれをチェックアウトしたい場合は、次のページで私のフォームに問題があります!投稿するどうもありがとうございました!! –

+0

素晴らしい。 Githubの要点として追加の質問を投稿するか、SOに関する別の質問をすることができます。 – oreoluwa

+0

私はそれを理解しました!しかし、私は、私が投稿するスタイリングについて別の質問があります!ありがとう!! –

関連する問題