0

Авторитетных госзакупки ...Rails не определен метод `больницы» для ноля: NilClass

В моем приложении я хочу, чтобы отобразить фамилию больницы для данного сотрудника ...

, для которых я попытался это:

<%= @employee.postings.last.hospital.hospital_name %> 

Все необходимые ассоциации правильно ... как это прекрасно работает для всех сотрудников, которые имеют проводку ... но я получаю сообщение об ошибке для сотрудников, которые не имеют ни единого проводка ...

Я пытался делать

<%= @employee.postings.last.hospital.hospital_name.to_s %> 

и даже

<% if [email protected]? %> 

и даже функция «попробовать» ....

Я просто хочу, чтобы не отображать любые данные, когда существует один доцент ... вместо устрашающей ошибки ...

Если бы я мог просто научиться пропускать печать нулевых значений, тогда это было бы потрясающе. Я столкнулся с подобными проблемами elsewher е тоже ...

Для бывшего: в моих сотрудниках главной страницы я хочу, чтобы отобразить все квалификации для каждого работника, для которого им делать:

<tbody> 
<% @employees.each do |employee| %> 
    <tr> 
    <td><%= employee.emp_id %></td> 
    <td><%= employee.emp_treasury_id %></td> 
    <td><%= link_to employee.emp_full_name,employee_path(employee) %></td> 
    <% @employee.qualifications.each do |qualification| %> 
      <td><%= qualification.qualification_name.Qualification_name %></td> 
    <% end %> 
    </tr> 
<% end %> 

, но я в конечном итоге получить «неопределенный метод` квалификации для ноль: ошибка NilClass»в очередной раз ... Im пытаясь много ... но все же ...

Thanx и Искреннее с уважением

-Sky

ответ

1

Попробуйте

<%= @employee.postings.last.try(:hospital).try(:hospital_name) || "N/A" %> 
+0

Thnx :) ... это потрясающе решить мою проблему точно :) .... – SkyKOG

1

использованием try

<%= @employee.postings.last.try(:hospital).try(:hospital_name) %> 

использованием if

<%= @employee.postings.last.hospital.hospital_name if @employee.postings.exists? && @employee.positings.last.hospital %> 
+0

Thnx очень много: D >>> .... – SkyKOG

1

Это должно быть

работник не @employee

Остановить использование вами try или reply_to для более безопасного использования. Возможно, вы не выполнили миграцию.

.respond_to?(:field) && model.try(:field) 

Благодаря

<% @employees.each do |employee| %> 
    <tr> 
    <td><%= employee.emp_id %></td> 
    <td><%= employee.emp_treasury_id %></td> 
    <td><%= link_to employee.emp_full_name,employee_path(employee) %></td> 
    <% employee.qualifications.each do |qualification| %> 
      <td><%= qualification.try(:qualification_name).try(:Qualification_name) %></td> 
    <% end %> 
    </tr> 
<% end %> 
+0

Thnx для всех ваши ценные предложения ... я многому научился :) ... – SkyKOG