[Rails] 오류 메시지를 개별적으로 표시하는 방법
12902 단어 formbuilder오류 메시지RubyRails
목표
개발 환경
・Rubby:2.5.7
・Rails:5.2.4
・Vagrant:2.2.7
・VirtualBox:6.1
・OS:macOS Catallina
전제 조건
다음은 이미 실현되었다.
・슬림 가져오기
・발언 기능 설치
이루어지다
1. application.편집
application.rbmodule Bookers2Debug
class Application < Rails::Application
config.load_defaults 5.2
# 追記
config.action_view.field_error_proc = Proc.new do |html_tag, instance|
if instance.kind_of?(ActionView::Helpers::Tags::Label)
html_tag.html_safe
else
class_name = instance.object.class.name.underscore
method_name = instance.instance_variable_get(:@method_name)
"<div class=\"has-error\">#{html_tag}
<span class=\"help-block\">
#{I18n.t("activerecord.attributes.#{class_name}.#{method_name}")}
#{instance.error_message.first}
</span>
</div>".html_safe
end
end
end
end
[해설]
① 오류가 발생하지 않은 경우 HTML을 직접 표시합니다.
if instance.kind_of?(ActionView::Helpers::Tags::Label)
html_tag.html_safe
② 오류가 발생하면 양식 아래에 오류 메시지가 표시됩니다.
else
class_name = instance.object.class.name.underscore
method_name = instance.instance_variable_get(:@method_name)
"<div class=\"has-error\">#{html_tag}
<span class=\"help-block\">
#{I18n.t("activerecord.attributes.#{class_name}.#{method_name}")}
#{instance.error_message.first}
</span>
</div>".html_safe
◇실례의 클래스 이름을 변수에 대입하다class_name = instance.object.class.name.underscore
◇실례적인 방법 명칭을 변수에 대입하다method_name = instance.instance_variable_get(:@method_name)
◇오류 메시지 섹션의 HTML을 만듭니다."<div class=\"has-error\">#{html_tag}
<span class=\"help-block\">
#{I18n.t("activerecord.attributes.#{class_name}.#{method_name}")}
#{instance.error_message.first}
</span>
</div>".html_safe
제목 입력#{I18n.t("activerecord.attributes.#{class_name}.#{method_name}")}
제목에 해당하는 섹션#{instance.error_message.first}
은 입력하십시오.
2. 오류 메시지 일본어화
①Gem 도입
Gemfile# 追記
gem 'rails-i18n'
단말기$ bundle
② application.편집
application.rbmodule Bookers2Debug
class Application < Rails::Application
config.load_defaults 5.2
config.i18n.default_locale = :ja # 追記
config.action_view.field_error_proc = Proc.new do |html_tag, instance|
if instance.kind_of?(ActionView::Helpers::Tags::Label)
html_tag.html_safe
else
class_name = instance.object.class.name.underscore
method_name = instance.instance_variable_get(:@method_name)
"<div class=\"has-error\">#{html_tag}
<span class=\"help-block\">
#{I18n.t("activerecord.attributes.#{class_name}.#{method_name}")}
#{instance.error_message.first}
</span>
</div>".html_safe
end
end
end
end
③ ja.작성 및 편집
단말기$ touch config/locales/ja.yml
ja.ymlja:
activerecord:
attributes:
book:
title: タイトル
body: 本文
Reference
이 문제에 관하여([Rails] 오류 메시지를 개별적으로 표시하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/matsubishi5/items/71cf60232a5e1c733fc9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
・Rubby:2.5.7
・Rails:5.2.4
・Vagrant:2.2.7
・VirtualBox:6.1
・OS:macOS Catallina
전제 조건
다음은 이미 실현되었다.
・슬림 가져오기
・발언 기능 설치
이루어지다
1. application.편집
application.rbmodule Bookers2Debug
class Application < Rails::Application
config.load_defaults 5.2
# 追記
config.action_view.field_error_proc = Proc.new do |html_tag, instance|
if instance.kind_of?(ActionView::Helpers::Tags::Label)
html_tag.html_safe
else
class_name = instance.object.class.name.underscore
method_name = instance.instance_variable_get(:@method_name)
"<div class=\"has-error\">#{html_tag}
<span class=\"help-block\">
#{I18n.t("activerecord.attributes.#{class_name}.#{method_name}")}
#{instance.error_message.first}
</span>
</div>".html_safe
end
end
end
end
[해설]
① 오류가 발생하지 않은 경우 HTML을 직접 표시합니다.
if instance.kind_of?(ActionView::Helpers::Tags::Label)
html_tag.html_safe
② 오류가 발생하면 양식 아래에 오류 메시지가 표시됩니다.
else
class_name = instance.object.class.name.underscore
method_name = instance.instance_variable_get(:@method_name)
"<div class=\"has-error\">#{html_tag}
<span class=\"help-block\">
#{I18n.t("activerecord.attributes.#{class_name}.#{method_name}")}
#{instance.error_message.first}
</span>
</div>".html_safe
◇실례의 클래스 이름을 변수에 대입하다class_name = instance.object.class.name.underscore
◇실례적인 방법 명칭을 변수에 대입하다method_name = instance.instance_variable_get(:@method_name)
◇오류 메시지 섹션의 HTML을 만듭니다."<div class=\"has-error\">#{html_tag}
<span class=\"help-block\">
#{I18n.t("activerecord.attributes.#{class_name}.#{method_name}")}
#{instance.error_message.first}
</span>
</div>".html_safe
제목 입력#{I18n.t("activerecord.attributes.#{class_name}.#{method_name}")}
제목에 해당하는 섹션#{instance.error_message.first}
은 입력하십시오.
2. 오류 메시지 일본어화
①Gem 도입
Gemfile# 追記
gem 'rails-i18n'
단말기$ bundle
② application.편집
application.rbmodule Bookers2Debug
class Application < Rails::Application
config.load_defaults 5.2
config.i18n.default_locale = :ja # 追記
config.action_view.field_error_proc = Proc.new do |html_tag, instance|
if instance.kind_of?(ActionView::Helpers::Tags::Label)
html_tag.html_safe
else
class_name = instance.object.class.name.underscore
method_name = instance.instance_variable_get(:@method_name)
"<div class=\"has-error\">#{html_tag}
<span class=\"help-block\">
#{I18n.t("activerecord.attributes.#{class_name}.#{method_name}")}
#{instance.error_message.first}
</span>
</div>".html_safe
end
end
end
end
③ ja.작성 및 편집
단말기$ touch config/locales/ja.yml
ja.ymlja:
activerecord:
attributes:
book:
title: タイトル
body: 本文
Reference
이 문제에 관하여([Rails] 오류 메시지를 개별적으로 표시하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/matsubishi5/items/71cf60232a5e1c733fc9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
1. application.편집
application.rb
module Bookers2Debug
class Application < Rails::Application
config.load_defaults 5.2
# 追記
config.action_view.field_error_proc = Proc.new do |html_tag, instance|
if instance.kind_of?(ActionView::Helpers::Tags::Label)
html_tag.html_safe
else
class_name = instance.object.class.name.underscore
method_name = instance.instance_variable_get(:@method_name)
"<div class=\"has-error\">#{html_tag}
<span class=\"help-block\">
#{I18n.t("activerecord.attributes.#{class_name}.#{method_name}")}
#{instance.error_message.first}
</span>
</div>".html_safe
end
end
end
end
[해설]
① 오류가 발생하지 않은 경우 HTML을 직접 표시합니다.
if instance.kind_of?(ActionView::Helpers::Tags::Label)
html_tag.html_safe
② 오류가 발생하면 양식 아래에 오류 메시지가 표시됩니다.
else
class_name = instance.object.class.name.underscore
method_name = instance.instance_variable_get(:@method_name)
"<div class=\"has-error\">#{html_tag}
<span class=\"help-block\">
#{I18n.t("activerecord.attributes.#{class_name}.#{method_name}")}
#{instance.error_message.first}
</span>
</div>".html_safe
◇실례의 클래스 이름을 변수에 대입하다class_name = instance.object.class.name.underscore
◇실례적인 방법 명칭을 변수에 대입하다method_name = instance.instance_variable_get(:@method_name)
◇오류 메시지 섹션의 HTML을 만듭니다."<div class=\"has-error\">#{html_tag}
<span class=\"help-block\">
#{I18n.t("activerecord.attributes.#{class_name}.#{method_name}")}
#{instance.error_message.first}
</span>
</div>".html_safe
제목 입력#{I18n.t("activerecord.attributes.#{class_name}.#{method_name}")}
제목에 해당하는 섹션#{instance.error_message.first}
은 입력하십시오.2. 오류 메시지 일본어화
①Gem 도입
Gemfile
# 追記
gem 'rails-i18n'
단말기$ bundle
② application.편집
application.rb
module Bookers2Debug
class Application < Rails::Application
config.load_defaults 5.2
config.i18n.default_locale = :ja # 追記
config.action_view.field_error_proc = Proc.new do |html_tag, instance|
if instance.kind_of?(ActionView::Helpers::Tags::Label)
html_tag.html_safe
else
class_name = instance.object.class.name.underscore
method_name = instance.instance_variable_get(:@method_name)
"<div class=\"has-error\">#{html_tag}
<span class=\"help-block\">
#{I18n.t("activerecord.attributes.#{class_name}.#{method_name}")}
#{instance.error_message.first}
</span>
</div>".html_safe
end
end
end
end
③ ja.작성 및 편집
단말기
$ touch config/locales/ja.yml
ja.ymlja:
activerecord:
attributes:
book:
title: タイトル
body: 本文
Reference
이 문제에 관하여([Rails] 오류 메시지를 개별적으로 표시하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/matsubishi5/items/71cf60232a5e1c733fc9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)