じぶんメモ

プログラミングのメモ、日常のメモとか。

seedsを使ったテーブルへのデータINSERT

Railsでテーブル作成後、seedsファイルを使用したデータの登録手順を記載する。 1.seedsファイルにseed対象のファイルを追加 seedsファイルに直接テーブルの作成ロジックを記載しても問題ないが、 テーブルの数が多くなった時に管理が煩雑になるので、テーブ…

フォームでのエンターキー押下時の送信制御

フォームでエンターキー押下時の制御 フォームのinputにフォーカスが当たっている状態でエンターキーを押下すると、 フォームの内容が送信される。 エンターキー押下時で送信させたくない場合は以下のようにjavascriptで制御してやれば良い。 $(document).re…

相関サブクエリを使って、各キーごとの最大値を取得する

SQL

相関サブクエリとは SQLのサブクエリ内で、サブクエリ外部のテーブルを参照するサブクエリのこと。 以下の例では、相関サブクエリで、 companyテーブルのareaと同じ値を持つdeptテーブルのレコードを抽出している。 SELECT dept.person FROM dept WHERE dept…

railsにbootstrapを導入する

以下に、gemを使用したrailsへのbootstrapの導入方法を記載する。 1.Gemの導入 以下のGemをGemfileに記載する。 gem 'twitter-bootstrap-rails' # bootstrapはlessで記述されているのでless-railsが必要 gem 'less-rails' # 同様に、less-railsの導入にrubyr…

救急車のサイレンは通り過ぎた後に音が低くなるのはぜか?→ドップラー効果

表題の通り、救急車のサイレンの音が、通り過ぎる前と後で音程が変わるのはなぜか。 これにはちゃんとした理由がある。 理由 音の高低を決めるのは、音を伝える空気の振動の幅。 振動の幅が狭ければ(振動する回数が多ければ)高い音に、 幅が広ければ(振動す…

disabledになっている項目はPOSTされない

inputタグで、disabledがtrueになっている項目は、サーバーにPOSTされない。 なお、readonlyになっている項目はカーソルで選択状態にすることができ、POSTもされる。

AjaxにおけるCSRF対策

HTTPヘッダのX-requested-withの値をチェック? HTTPヘッダのX-requested-withの値が、Ajax通信を示す「xmlhttprequest」であることを確認する。 SameOriginPolicyより、Ajax通信では、不正な外部ドメインからのアクセスはできない。 SameOriginPolicyとは …

CSRF対策

CSRFとは クエスト強要(CSRF:Cross-site Request Forgery)。 本来拒否すべき、外部のWebページからのHTTPリクエスト(POSTやGET)によって、 Webサイトの何らかの機能が実行されるというもの。 ユーザが罠を踏んで、ECサイトで勝手に買い物をされるといっ…

knockoutを使ったDOM操作

knockout.jsを使えば、DOM操作を簡略に記述することができ、 コードの行数が減りそう。jQueryでガシガシDOM操作するよりスマートに記述できる。 knockoutでは、jsの変数と、htmlのセレクターをko.observable()という関数を使って関連づけることで、 自動的に…

curlでBasic認証がかかっているURLにアクセスする方法

Basic認証とは ユーザ名とパスワードの組みをコロン ":" でつなぎ、 Base64でエンコードして送信する認証方法。 curlでのBasic認証 以下の方法でアクセスする。 curl --user [ID]:[PASS] [URL]

curlで送信するリクエストメソッドを指定する方法

curlでリクエストメソッドを指定する場合、-X、--requestオプションを指定する。 ※オプションを指定しない場合、GETメソッドで送信される模様。 curl -X DELETE http://testdomain/id/10

curlでPOST送信

curlでPOST送信を行う方法。 オプションに-Dを付与する。 -Fでも可能だが、リクエストの受け取り側がmultipartをサポートしている必要がある。 curl -D param1=val1 -D param2=val2 http://testdomain/test.php 上記のコードはHTMLの以下の内容と同じになる…

javascriptで金額を千単位でカンマ区切りにする

javascriptで金額を扱う際に、千単位でカンマを付与させる。 ちなみにカンマ区切りは英語でthousand separator。 方法1. 正規表現 var amount = 100000; var formatedAmount = String(amount).replace( /(\d)(?=(\d\d\d)+(?!\d))/g, '$1,'); 方法2. toLocale…

jQueryにおけるpropとattireの違い

propとattrは、jQueryでフォームのチェックボックスやラジオボタン、 セレクトリストの選択しているの値を取得する時に使用する。 $(":checkbox").click(function() { alert($(this).prop('checked')); alert($(this).attr('checked')); }); propはtrueまた…

jQueryフォーム部品の値の取得・設定のまとめ

テキスト・テキストエリア val()を使用して取得・設定をする。 <input type="text" id="area" value="テキスト"> // 値の取得 $('#area').val(); // 値の設定 $('#area').val('テスト'); ラジオボタン <label><input type="radio" name="sex" value="0" checked>男</label> <label><input type="radio" name="sex" value="1">女</label> 選択したラジオボタンの値取得 var val = $('[name=se…

bxSliderを使用したレスポンシブカルーセル

レスポンシブなカルーセルを実装する時に、bxsliderを使用すると楽に実装できる。 jQuery Content Slider | Responsive jQuery Slider | bxSlider 使用するには上記リンクより必要なjs、cssをダウンロードし、 ソース内で読み込む。 以下にサンプルコードと…

jQueryを使用したセレクターのソート

jQueryを使用してセレクターのソートを行う際は、arrayクラスのsort()関数を使用する。 sort関数は、引数なしも実行可能だが、 ソート条件を指定できる。 sort()の戻り値(aとbをソートした場合) 1:bがaの手前に移動する 0:順序の変化なし -1:aがbの手前に移…

Linqを使ったListからの値の抽出

Linqを使ってListや配列の抽出を簡単に行える。 ラムダ式を使った方がシンプルに記述できる。 値の抽出 VBの場合 Dim records as New List(Of Person) For i = 0 To 10 Dim man As New Person("Tom", i ) ' Personクラス(名前、番号) records.Add(man) Next …

ドロップダウンリスト変更時に、選択したマスタコードに紐づく情報を再描画せずに表示する。

何をしたいか 以下のようなドロップダウンリストを考える。 画面表示されている文言はマスタの名称 Valueはマスタのコード値 ドロップダウンリストを変えると、タグにマスタに保持されている値が表示される。 金利コードにリンクする金利をタグに表示させる…