Доступ к элементу массива в шаблонах ruby на рельсах - PullRequest
0 голосов
/ 13 февраля 2020

Я хочу получить элементы массива, вызвать appliants, он является объектом из сервисов классов, как показывают мой код

<% @services.each do |service| %>
  <tr>
    <td><%= service.organ.id if service.organ %></td>
    <td><%= service.id %></td>
    <td><%= service['applicants'['type']] %></td>
  </tr>
<% end %>

В этом случае мне нужен доступ к типу ключа, но у меня нет успех.

массив заявителей - [{"type"=>"Titular da CNH.", "requirements"=>""}]

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

Я бы не стал делать это в представлении, поскольку ваши представления должны знать как можно меньше о базовых моделях.

class Service
  # @return [Array]
  def applicant_types
    (applicants||[]).map {|a| a["type"] }.compact
  end
end

Всегда возвращая массив, вы можете сделать service.applicant_types.each do |type| ... и быть уверенным, что он не вызовет нулевую ошибку.

0 голосов
/ 13 февраля 2020

Если вам нужны все значения type, вы можете объединить их в предложении, используйте Array#map

<%= service.applicants&.map{ |applicant| applicant['type'] }&.to_sentence %>

Подробнее о Array#map - https://www.geeksforgeeks.org/ruby-array-map-function/

Array#to_sentence - https://api.rubyonrails.org/classes/Array.html#method -i-to_sentence

Попробуйте!

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