неопределенный метод "гуманизации" для nil: NilClass - PullRequest
0 голосов
/ 04 июля 2018

Я знаю, что должен поставить оператор if, но как мне это сделать? Я новичок в рельсах. Может кто-нибудь понять это для меня?

 <div class="row">
      <div class="col-md-12 col-sm-12">
        <div class="col-md-6 col-sm-6">
          <h4><i><%=@prospects.length.to_s + " " %></i>
            <%= params[:state].humanize.pluralize + " on"%><i><%= @title %></i></h4>
        </div>
        <%= render "admin/report/appointments/filter_form.html.erb" %>
      </div>

Ответы [ 2 ]

0 голосов
/ 04 июля 2018
<div class="row">
  <div class="col-md-12 col-sm-12">
    <div class="col-md-6 col-sm-6">
      <h4><i><%=@prospects.length.to_s + " " %></i>
        <%= params[:state].present? ? params[:state].humanize.pluralize : "" + " on"%><i><%= @title %></i></h4>
    </div>
    <%= render "admin/report/appointments/filter_form.html.erb" %>
</div>

Я бы предложил не использовать параметры непосредственно в представлениях, вы можете использовать переменные экземпляра или объект, если он уже присутствует. .подарок? может использоваться inline, .nil должен использоваться на объектах, так как он пропускает регистры, такие как "" .nil? дает ложь

0 голосов
/ 04 июля 2018

пожалуйста, используйте блок try вместо условия if, вы можете узнать больше о попытке здесь https://apidock.com/rails/v3.2.1/Object/try

рельсы 5

params[:state]&.humanize&.pluralize

рельсы 4

params[:state].try(:humanize).try(:pluralize)

если вы не хотите использовать try и просто хотите использовать, если вы можете использовать троичное условие

<h4><i><%=@prospects.length.to_s + " " %></i> <%= params[:state].nil? ? params[:state] : params[:state].humanize.pluralize "on" %>

Но блок try выполнит ту же работу, что и вы, если условие

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