Я обращаюсь к объектам в Rails: Record :: ActiveRecord_Relation и ActionController :: Parameters и превращаю их в полезные хэши, которые будут отображаться в представлениях. Мне нужно заменить ноль и "" на "нет". Я мог бы сделать это не сухим способом и защитить каждую пару ключ / значение Hash с помощью чего-то вроде:
<div><%= @records_incoming[:time_inserted] || @records_incoming[:time_inserted].empty? ? "none" : @records_incoming[:time_inserted] %></div>
, но это не похоже на Ruby (предоставлено, я новичок в разработке).
Я пытался обработать это в контроллере следующим образом:
def show
sent_results = Record.get_sent(params[:request][:trans_uuid])
if !sent_results.empty?
incoming_request = params[:request].permit!
@records_sent = sent_results[0].attributes.each { |k,v| v.class == String && v.empty? || !v ? sent_results[0].attributes[k] = "none" : sent_results[0].attributes[k] }
@records_incoming = incoming_request.to_h.map { |k, v| v.empty? || !v ? "none" : v }
byebug
else
flash[:error] = 'No record found'
end
end
, но это не изменяет значения nil и пустой строки на 'none'. Если я использую map
, я, конечно, получаю массив в качестве возвращаемого значения, но мне нужно сохранить Hash.
Посоветуйте, пожалуйста, какие-нибудь лучшие Rails способы сделать это в целом. Попытка получить 2 хэша в представлениях, которые будут разделены и обработаны.