Top > 開発ガイド > 規約類 > Rails

Rails

  • URLを生成するメソッド(url_for等)
    • 必ずオプションで指定する
      • 良い例
        url_for(:controller => '/system/xxx', :action => 'ooo')
        
      • 悪い例
        url_for('/system/xxx/ooo')
        
    • コントローラは省略しない
      • 良い例
        url_for(:controller => '/system/xxx', :action => 'ooo')
        
      • 悪い例
        url_for(:action => 'ooo')
        
    • コントローラは絶対パスで記述する
      • 良い例
        url_for(:controller => '/system/xxx', :action => 'ooo')
        
      • 悪い例
        url_for(:controller => 'xxx', :action => 'ooo')
        
  • alias
    • エイリアスメソッドの有無を確認して、2重に定義されないようにすること
    • 名前衝突を避けるためにコンポーネント名等を含めること
      • 良い例
          class DocEditor::DocEditorDoc < ActiveRecord::Base
            # クラスメソッドの例
            class << self
              alias :doc_editor_find_original :find unless method_defined?(:doc_editor_find_original)
              def find
                xxx
              end
            end
        
            # インスタンスメソッドの例
            alias :doc_editor_to_json_original :to_json unless method_defined?(:doc_editor_to_json_original)
            def to_json
              xxx
            end
          end
        
      • 悪い例
          class DocEditor::DocEditorDoc < ActiveRecord::Base
            # クラスメソッドの例
            class << self
              alias :find_original :find
              def find
                xxx
              end
            end
        
            # インスタンスメソッドの例
            alias :to_json_original :to_json
            def to_json
              xxx
            end
          end
        
  • サニタイジング
    • HTML内での埋め込み変数のサニタイジングにはhlを用いる
    • JavaScript内での埋め込み変数のサニタイジングにはjlもしくはescape_javascriptを用いる