2013-10-14 4 views
1

У меня проблема.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}" 

Кто-то может мне помочь? Извините за мой английский.

Благодаря

ответ

1

Используйте #add_to_base вместо:

def suspitious_attachment 
    if ends_with? '.bat', '.com', '.exe', '.src', '.cmd' 
    errors.add_to_base(I18n.t('errors.messages.suspitious_attachment', :value => attachment.path[-4..-1])) 
    end 
end 
+0

Здравствуйте! Я уже пробовал этот путь, но это не сработало. –

Смежные вопросы