Ruby on rails 找不到参数(id)
不确定发生了什么,也不确定为什么提供者id返回nil,并且它仅在尝试呈现提供者\患者\访问\路径时返回nil。我向提供者添加了一个新页面,因此它应该是localhost:3000/providers/id/patient\u accessRuby 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/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