1. ホーム
  2. スクリプト・コラム
  3. ルビートピックス

Ruby on Railsのビューの書き方に関するいくつかのアドバイス

2022-02-03 15:16:54


    ビューから直接モデル層を呼び出さない。
    複雑な書式をビューで作成せず、ビューヘルパー内のメソッドかモデルに出力する。
    部分テンプレートやレイアウトを使用して、重複するコードを削減します。

    通常のバリデーターにクライアントサイドのバリデーションを追加する。そのための手順は

        ClientSideValidations::Middleware::Base からカスタムバリデータを宣言する。

 module ClientSideValidations::Middleware
   class Email < Base
   def response
    if request.params[:email] =~ /^([^@\s]+)@((? :[-a-z0-9]+\.) +[a-z]{2,})$/i
    self.status = 200
    else
    self.status = 404
    end
    super
   end
   end
  end


        新しいファイル public/javascripts/rails.validations.custom.js.coffee を作成し、その参照を application.js.coffee ファイルに追加します。

  
  # app/assets/javascripts/application.js.coffee
  #= require rails.validations.custom



        クライアントサイドバリデーターを追加します。

  #public/javascripts/rails.validations.custom.js.coffee
  clientSideValidations.validators.remote['email'] = (element, options) ->
   if $.ajax({
   url: '/validators/email.json',
   data: { email: element.val() },
   async: false
   }).status == 404
   return options.message || 'invalid e-mail format'