3 таблицы взаимодействуют друг с другом, но идентификатор пациента возвращается ноль - PullRequest
0 голосов
/ 16 января 2019

Итак, у меня есть три модели, которые ассоциируются друг с другом. У меня есть пациенты, поставщики и списки. у пациентов может быть много поставщиков, и наоборот. Список - средний человек. пациенты могут добавлять поставщиков в список, который работает идеально, и он отображает всех поставщиков в list_id. Однако на стороне поставщика, когда я пытаюсь оказать всем пациентам поставщиков. Я получаю сообщение об ошибке "Не удалось найти пациента с идентификатором" = введите описание изображения здесь

class ProvidersController < ApplicationController
def patient_access
        @provider = current_user.provider
        @active_patients = @provider.lists.where(soft_delete: false)
        render "providers/patient_access"
    end
end

<!-- Here is the patients controller which everything works fine on the patients side of the app as far as displaying all providers that belongs to that patient -->

class PatientsController < ApplicationController
def provider_access
        flash[:modal] = true
        @patient = Patient.find(params[:patient_id])
        @active_providers = @patient.lists.where(soft_delete: false)

    end
end

<- Вот мой файл Patient_access.html.erb ->

<%= render :partial => 'shared/side_menu' %>
<div class="container-main">
    <br/>
<div class="content-container your-sites">
        <div class="header">
            <div class="icon-circle"><div class="icon"><%= image_tag "my-providers-2x.png" %></div></div>
            <div class="title">Your Patients</div>
        </div><!--header-->
        <div class="body">
            <div class="body">
            <% if @active_patients.count > 0 %>
                <table>
                  <thead>
                    <tr>
                      <th>Patient Name</th>
                      <th>Actions</th>
                    </tr>
                  </thead>
                  <tbody>
                    <% @active_patients.each do |list| %>
                      <tr>
                        <td><%= list.patient.role.user.first_name %> <%= list.patient.role.user.last_name %></td>
                        <td>
                            <%= link_to patients_path(patient_id) %>
                        </td>
                      </tr>
                    <% end %>
                  </tbody>
                </table>
            <% else %>
                <div class="no-records">
                    <%= image_tag "icon-no-records", class: "image" %>
                    <div class="text">You have no patients.</div>
                </div><!--no-records-->
            <% end %>
        </div><!--body-->
    </div>
</div>

1 Ответ

0 голосов
/ 16 января 2019

В представлении у вас есть ссылка: <%= link_to patients_path(id: provider.id) %> и в контроллере @patient = Patient.find_by_id(params[:id]) - который буквально равен @patient = Patient.find_by_id(provider.id) и, конечно, rails не может найти такую ​​запись.

Вы должны передать patient_id этому действию, если хотите найти какого-то конкретного пациента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...