プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Ruby on Rails
  • 【Ruby on Rails】「ActionView::Helpers」や「FormBui…
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Ruby on Rails】「ActionView::Helpers」や「FormBuilder」について

12.26

  • miyabisan2
  • コメントを書く

この記事は1分で読めます

ActionView::Helpersとは?

form_withとかsubmitとかのRailsのviewで使えるヘルパーがセットになっているクラスです。

ActionView::Helpers::FormBuilderとは?

form_with(form_for)で指定されたモデルと関連づけたフィールドを生成するためのものです。form_helperとモデル間のプロキシ役をしてくれるものになります。

用途

一般的には、既存のviewヘルパーをオーバーライドしてエラーメッセージを付加するような目的で使用します。

使い方

例えば、既存のviewヘルパーである「text_field」をオーバーライドしてみます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class ビルダー名(ApplicationFormBuilder等) < ActionView::Helpers::FormBuilder
  def text_field(method, options={})
    return super if options[:no_errors]
    super + errors_message(attribute)
  end
 
  #エラーメッセージ出力処理
  def errors_message(attribute)
    return nil if @object.nil? || (messages = @object.errors.messages[attribute]).nil?
 
    lis = messages.collect do |message|
      %{<li>#{@object.errors.full_message(attribute, message)}</li>}
    end.join
 
    %{<ul class="errors">#{lis}</ul>}.html_safe
  end
end

super

既存のビューヘルパーであるtext_fieldを指しています。

ヘルパーの配置場所

下記に配置することが多いでしょう。

1
app/helper

viewで使用する場合は下記のように指定します。

1
2
3
4
<%= form_with @モデル名, builder: ビルダー名 do |f| %>
  <%= f.text_field :title %>
  <%= f.submit %>
<% end %>

スポンサーリンク
  • 2020 12.26
  • miyabisan2
  • コメントを書く
  • Ruby on Rails
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2020 12.19

    【Ruby on Rails】「外部キー」の設定のされ方

  2. 2018 05.04

    【Webセキュリティ】ハッシュ関数(digest)、実装方法、パスワード運用について

  3. 2019 12.02

    【Ruby on Rails】ログ出力の記述法や様々な設定方法、設計方針

  4. 2018 06.20

    【Ruby on Rails】ページごとに、読み込まれるCSSとJavaScriptを変えるには?(Rails5まで)

  5. 2019 12.08

    【Ruby on Rails】「seedデータ」、「faker」

  6. 2019 12.08

    【Ruby on Rails】「Turbolinks」によるページ遷移高速化

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【React】JSX、Componentの基本

【Ruby on Rails】「serialize」や…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー