无法找到参数(id)

时间:2019-01-15 00:02:48

标签: ruby-on-rails ruby

不确定是怎么回事,或者提供者ID为什么返回零,并且仅在尝试呈现provider_ Patient_access_path时才返回零。我向提供商添加了新页面,因此它应该是localhost:3000 / providers / id / Patient_access

error message

   <!-- PROVIDERS SIDE MENU -->

    <%= link_to provider_patient_access_index_path(@provider.id) do %>
        <div class="side-menu-item">
        <div class="side-menu-icon" data-id="<%= @provider.id %>"><div id="side-menu-icon-search"></div></div>
        <div id="side-menu-item-text-patient-profiles" class="side-menu-item-text">Patient Access</div>
        </div><!--side-menu-item-->
    <% end %>

    <!-- ROUTES -->
    resources :providers do 
        resources :patient_access, only: [:index]
    end

    <!-- PROVIDERS_CONTROLLER -->
   class PatientAccessController < ApplicationController

    def index
        @provider = Provider.find(params[:provider_id])
        @active_patients = @provider.lists
        authorize @provider
    end
end
    end

1 个答案:

答案 0 :(得分:2)

设置了这些路线后,路径将为:

/providers/:id/patient_access(.format)

由于这个原因,params[:provider_id]返回nil,因为没有提供,但是params[:id]应该返回正确的值。

您可以通过访问开发环境中不存在的URL /路由来检查路由。例如http://localhost:3000/asdf。或者,您可以使用以下命令将它们输出到终端:

bundle exec rails routes

有关路由的更多详细信息,请参阅指南Rails Routing from the Outside In