Ruby on rails 找不到参数(id)

Ruby on rails 找不到参数(id),ruby-on-rails,ruby,Ruby On Rails,Ruby,不确定发生了什么,也不确定为什么提供者id返回nil,并且它仅在尝试呈现提供者\患者\访问\路径时返回nil。我向提供者添加了一个新页面,因此它应该是localhost:3000/providers/id/patient\u access 设置这些路线后,路径将为: /提供者/:id/patient\u access.format 由于这个原因,params[:provider_id]返回nil,因为没有提供它,但是params[:id]应该返回正确的值 您可以通过访问开发环境中不存在的URL/

不确定发生了什么,也不确定为什么提供者id返回nil,并且它仅在尝试呈现提供者\患者\访问\路径时返回nil。我向提供者添加了一个新页面,因此它应该是localhost:3000/providers/id/patient\u access


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

/提供者/:id/patient\u access.format 由于这个原因,params[:provider_id]返回nil,因为没有提供它,但是params[:id]应该返回正确的值

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

bundle exec rails路由
有关路由的更多详细信息,请查看指南。

设置这些路由后,路径将为:

/提供者/:id/patient\u access.format 由于这个原因,params[:provider_id]返回nil,因为没有提供它,但是params[:id]应该返回正确的值

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

bundle exec rails路由
有关路由的更多详细信息,请查看指南。

谢谢您的回复。我已经检查了我的路线,并尝试在控制器中的patient_访问方法中使用params[:id],但仍然返回为nil。您可以通过将byebug作为索引方法的第一行来显示传入参数吗?然后,当执行停止时,键入params。在注释中复制输出,或将其添加到问题中。继续执行类型c。我还注意到您编辑了问题并更改了路线,因此我不确定这个答案是否仍然适用。从您提供的示例可以看出@provider未设置。这就是引发当前错误的原因。同样的答案仍然适用。我想看看这是否与我的路线有关,但我想不是。下面是当我选择params patients,action=>index}allowed:false>我在写答案时没有注意到问题附带的图像时的输出。从显示的内容来看,您似乎没有在PatientController索引中正确设置@provider。你能把方法的内容加到问题上吗?您当前正在显示PatientAccessControllerindex的内容。感谢您的回复。我已经检查了我的路线,并尝试在控制器中的patient_访问方法中使用params[:id],但仍然返回为nil。您可以通过将byebug作为索引方法的第一行来显示传入参数吗?然后,当执行停止时,键入params。在注释中复制输出,或将其添加到问题中。继续执行类型c。我还注意到您编辑了问题并更改了路线,因此我不确定这个答案是否仍然适用。从您提供的示例可以看出@provider未设置。这就是引发当前错误的原因。同样的答案仍然适用。我想看看这是否与我的路线有关,但我想不是。下面是当我选择params patients,action=>index}allowed:false>我在写答案时没有注意到问题附带的图像时的输出。从显示的内容来看,您似乎没有在PatientController索引中正确设置@provider。你能把方法的内容加到问题上吗?您当前正在显示PatientAccessControllerindex的内容。您是否看到我的代码有任何错误,可能导致以下原因:provider\u id返回为零?我还将我的代码更新为我最近拥有的代码。还有一个错误的图像,您是否看到我的代码有任何错误,可能导致以下原因:provider\u id返回为零?我还将我的代码更新为我最近拥有的代码。还有一个错误的图像
   <!-- 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