Ошибка при попытке ссылки на профиль пациента

Это может сработать для вас:

perl test.pl | tee -i /dev/stderr | sed -f sed.sed > test.log

Программа perl переключит свой вывод на стандартный вывод. Тройка выйдет на сцену и примет ее как stdin и выкачайте ее в stderr и stdout. Программа sed будет принимать stdout и принять ее как stdin и выкачать ее из stdout, которая перенаправляет ее на test.log. Stderr будет направлен на терминал.

N.B. Это может привести к нежелательным побочным эффектам.

0
задан ray 22 January 2019 в 13:15
поделиться

2 ответа

Пусть Rails сделает работу по созданию пути. Каждая модель ActiveRecord имеет метод to_param, который решает, как экземпляр будет закодирован в URL. По умолчанию он возвращает идентификатор модели, но это также может быть слаг, основанный на заголовке или другом свойстве модели.

Вызов своего помощника, как patient_path(patient), должен помочь.

Кроме того, в вашем текущем коде вы ссылаетесь на ранее не использованную переменную @patient, хотя похоже, что вместо этого вы хотите обратиться к list.patient.

0
ответ дан milgner 22 January 2019 в 13:15
поделиться

Здесь:

<% @active_patients.each do |list| %>
  <tr>
    <td>
      <%= list.patient.role.user.first_name %> <%= list.patient.role.user.last_name %>
    </td>
    <td>
      <%= link_to patient_path(id: @patient.id), class: "btn" do %>View<% end %> . #### THIS IS THE LINE
    </td>
  </tr>
<% end %>

у вас есть переменная list для вас. Похоже, что вы получаете patient, выполняя list.patient, как здесь:

<%= list.patient.role.user.first_name %> <%= list.patient.role.user.last_name %>

Но затем вы пытаетесь использовать переменную с именем @patient, здесь:

[112 ]

когда у вас нет переменной @patient. Итак, вы получаете ошибку nil.

Вместо этого, кажется, вы должны сделать:

<%= link_to patient_path(id: list.patient.id), class: "btn" do %>View<% end %> .

Или, как указывает Милгнер, вы можете просто сделать:

<%= link_to patient_path(list.patient), class: "btn" do %>View<% end %> .

Также вы можете захотеть изучите Закон Деметры , который вы нарушаете (IMO), когда делаете:

list.patient.role.user.first_name
0
ответ дан jvillian 22 January 2019 в 13:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: