ID와 이전에 예약 된 예약 정보를 유지하는 다른 페이지에 link_to하려고합니다. 예를 들어 내 예약 테이블의 행을 나열하여 정보를 표시하고 클릭 한 후 예약 테이블을 편집하는 버튼을 포함 할 수 있습니다. 버튼을 추가하고 페이지로 연결되면 오류가 발생합니다.경로가 일치하지 않습니다. 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)
<% @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 %>
예약 컨트롤러 "코드의 하단은 LINK_TO하다"
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'
본질적으로 다른 페이지에서 예약을 편집하고 싶습니다 !! 내가 어떻게 할 수 있니? 페이지에 대한 편집을 만들려고했는데 잘못 생각한 것 같습니다.
당신은 자원이 수행 경로에 예약? – Hardik127
수정 자와 예약의 관계는 무엇입니까? – oreoluwa
관계는 사용자가 예약을하고 개정자가 외부 키로 포함됩니다. 편집자 만이 모든 예약이 이루어진 페이지를 보는 페이지. 링크를 클릭하면 다른보기로 링크하여 예약 페이지를 편집하는 양식을 채울 수 있습니다. 수정 자 (reviser)가 예약의 nil 열에 다른 양의 정보를 추가 할 수있게하려고합니다. –