Я пытаюсь высушить общий макет, который я использую для отображения всплывающих окон с ошибками JavaScript.
В настоящее время этому макету передаются две локальные переменные: «target» и «target_name».Они используются для создания записей Javascript следующим образом:
<% target.errors.each do |attribute, error_message| %>
$(".mainForm #<%= "#{target_name}_#{attribute}" %>").validationEngine("showPrompt", "<%= error_message %>", 'load', 'topRight', true);
<% end %>
Существует также другая часть общего макета, которая использует эти переменные для составления "флэш" сообщения тоже
<p><%= pluralize(target.errors.count, "error") %> prohibited this <%= target_name %> from being created:</p>
Такмой вопрос заключается в том, могу ли я получить «target_name» из «target» в каждом случае, учитывая, что я в основном придерживаюсь соглашений?
Например, я использую эту схему ошибок из формы Users следующим образом
<%= render "shared/errors", target: @user, target_name: "user" %>
<%= form_for @user html: {class: "mainForm"} do |f| %>
<fieldset>
<div class="rowElem"><label>Login:</label>
<div class="formRight"><%= f.text_field :login %></div>
...
Таким образом, мне нужно только указать здесь переменную "target" и извлечь "target_name" в макете из объекта "target".