У меня проблема.errors.add (: base, "MSG") без атрибутов
Я пытаюсь показать сообщение без атрибута. Я искал ответ, но любое решение для меня работало.
Я хочу показать только сообщение об ошибке, как это:
прикреплённым база não é permitido загрузить де .exe
Но всегда показывают это: «Вложения базы». Я хочу только, чтобы показать: não é permitido загрузить де .exe
Ну, в моей модели у меня есть подтверждение:
validate :suspitious_attachment
private
def suspitious_attachment
if ends_with? '.bat', '.com', '.exe', '.src', '.cmd'
errors.add(:base, I18n.t('errors.messages.suspitious_attachment', :value => attachment.path[-4..-1]))
end
end
def ends_with?(*args)
args.each do |arg|
return true if attachment.path.ends_with? arg
end
false
end
На мой взгляд:
<% if @issue.errors[:attachments].any? %>
<div class="clearfix error">
<% else %>
<div class="clearfix">
<% end %>
<label>
<%= image_tag 'icons/required.png', :alt => '*' %><%= t('labels.attachments') %>
</label>
<div class="input">
<div class="inputs-list">
<%= f.fields_for :attachments do |builder| %>
<%= render 'attachment_fields', :f => builder %>
<% end %>
<%= f.link_to_add t("actions.add_another_attachment"), :attachments, :class => "icon-attach" %>
<% if @issue.errors[:attachments].any? %>
<%= content_tag :span, t('errors.messages.blank'), class: 'help-inline error' %>
<% end %>
</div>
</div>
В моих взглядах/макет/_error_messages.html.erb
<% if target.errors.any? %>
<% if target.errors.any? %>
<div class="alert-message fade in warning">
<a class="close" href="#">×</a>
<p><%= target.errors.full_messages.first %></p>
</div><% end %>
Я пробовал:
errors[:base] << I18n.t('errors.messages.suspitious_attachment', :value => attachment.path[-4..-1]))
и
errors.add_to_base(I18n.t('errors.messages.suspitious_attachment', :value => attachment.path[-4..-1]))
Я пытался вставить в мой перевод файла:
activerecord:
errors:
format: "%{message}"
Кто-то может мне помочь? Извините за мой английский.
Благодаря
Здравствуйте! Я уже пробовал этот путь, но это не сработало. –