INDEX、複合INDEX、UNIQUE制約とUNIQUE INDEXについて
INDEXとは 特定のカラムからデータを取得する際に、テーブルの中の特定のカラムのデータを複製し検索が行いやすいようにしたもの。 例えばユーザー名を検索する場合、データベースはデフォルトで表の1行目から最後まで探す、いわゆる全表スキャン(Full-table Scan)の方法。 もしユーザー名にindexをつけると、本の索引のように、アルファベット順などのアルゴリズムを使って途中から...
INDEXとは 特定のカラムからデータを取得する際に、テーブルの中の特定のカラムのデータを複製し検索が行いやすいようにしたもの。 例えばユーザー名を検索する場合、データベースはデフォルトで表の1行目から最後まで探す、いわゆる全表スキャン(Full-table Scan)の方法。 もしユーザー名にindexをつけると、本の索引のように、アルファベット順などのアルゴリズムを使って途中から...
redirect_back fallback_location: root_pathは初めて見た使い方で、redirect_back_or_toとの違いを調べていた。 Rails APIではredirect_backはredirect_back_or_toのエイリアスで、後者よりやや非推奨と書いてた。 理由はfallback_locationの引数は redirect_backでキーワー...
最初はbookmarks#createアクションの中に、params[:board_id]という書き方に疑問を感じた。 なんでparamsにboard_idが入ったのか? def create board = Board.find(params[:board_id]) boards/_bookmark.html.erbの中で、 link_to bookmarks_path(b...
collectionとmemberの使い分けについて、ID取得必要かどうかで判断するとの説明が多く見かけて、理解が曖昧だったけど、stackoverflowの回答を見て、ようやく納得した内容をメモする。 結論 違いはrouteにidが付くか付かないかと言うより、個別リソースに対してのアクションなのか、リソース全体に対してのアクションなのか、ということ。 特定のリソースに対してのアクション...
動的タイトルを出力するため、content_forを使うのがよく見かけるけど、Rails Tutorialの中に、provideメソッドを推奨しているそう。 Railsでの開発経験者であれば、この時点でcontent_forを検討すると思いますが、残念ながらAsset Pipelineと併用すると正常に動作しないことがあります。provideメソッドはcontent_forの代替です。...
form_with model: postとfrom_with model: @postの2種類記法で戸惑っていたので、パーシャルに渡す変数について、調べていた。 結論 インスタンス変数か、ローカル変数か、form_withの挙動に特に影響がなさそうだが、 パーシャルにはなるべくローカル変数を渡すのが良いことがわかった。 理由 インスタンス変数を使うと、コントローラとも結びついてしまい...
初めてアルゴリズムを勉強していたとき、バブルソートの方法を使って配列を降順にソートするプログラムを書くという課題で躓いていたところをメモする。 プログラムは下記のように作成したけど、どうしてもソートできなかった。 arr = [4, 5, 2, 1, 3] size = arr.size max = size - 1 (0..(max-1)).each do |i| (max..(i...