読者です 読者をやめる 読者になる 読者になる

MogLog

メモというか日記というか備忘録というか

DBとかパフォーマンスとか

チラ裏です。 そのカラムにインデックスを張るべきか否か、そしてそれはどう判断すべきなのか かなり頻繁にwhere句として使われる カーディナリティは極端に小さい(現状2パターンしか無い。直近増える予定もない) ...というカラムがあった。時間が無いなり…

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

Railsで「mysql2」を利用する際、bundle installをするとタイトルのようなエラーが出力された。 かなりの時間これに悩まされた。具体的には以下のようなエラー。 Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /Users…

最近のWebアプリ開発で利用したフロントエンド関係のあれこれ

Railsを利用したWebアプリ開発をするときにフロントエンドまわりで利用したライブラリやフレームワーク,Tipsなどをまとめて、簡単に感想を書く。■ CSSフレームワーク 僕のCSSフレームワークの使途は基本的にパーツのデザインや装飾だけだった。 ボタンやフォ…

Railsのtextareaの幅を設定する方法

form_forヘルパーの内部で生成したtextareaタグのサイズを設定する方法が、他のフィールドタグと違うような感じがしたのでメモを残しておく。 # これはダメ <%= f.text_area :description, :cols => 10, :rows=> 60 %> # これは平気 <%= f.text_area :descri…

Railsのlink_toにパラメータを付与する

link_toにパラメータを付ける書き方をよく忘れる。 ググるとたくさんの書き方が出てくるし、書き方は1つではないと思われるが、個人的に一番直感的だったものをメモしておく。 # hoge_index_pathのパラメータ「para」に123、「para2」に'abc'を渡す <%= lin…

【Rails】カラムの型がboolean(tinyint)のカラムを条件にデータをモデルから取得する際の注意

マイグレーションファイルにて、カラムの型をbooleanにしたレコードを条件にしてデータを取得する際、データベース上では「0」と「1」で表現されているが、実際には「true」「false」を使わないと意図通りにデータが取得できない。DB active_flg tinyint(1) …

【Rails】サブディレクトリ以下のコントローラを作成する方法

例えば、「customize」というサブディレクトリを利用していたとする。 routes.rbは以下のような感じになるかと思う。 namespace "customize" do resources :user resources :item end ルーティング設定まで終えて、customize以下に実際にuserコントローラ等…

rails consoleのtips

あるモデルのメソッドの挙動を確認したくて、railsのコンソールを立ち上げたとする。そして、立ち上げたあとにモデルのメソッドに修正を加えたとする。この場合、コンソールを再起動しないと加えた修正が反映されない(と思っていた)。しかし、そんな面倒な…

Rails3.2.8のform_forヘルパー利用下のselectタグにクラスを付与する方法

(✕)<%= f.select 'from_time', TIME, selected: '9:00', class: 'from_time' %> (◯)<%= f.select(:from_time, TIME, {selected: '9:00'}, {class: 'from_time'}) %> 第2引数の「TIME」は定数。時刻が配列になって格納されている。 selectedなどを利用し…

Rails3.2系、マイグレーションを利用してインデックスを追加する手順

rails generate migration [マイグレーションファイル名] 名前の基本は、「実行したい処理+テーブル名」だとか というわけで、rails genereate migration AddIndexTweetsというふうにした。すると、db/migrate/以下に、マイグレーションファイルが生成され…

Railsでkaminariを使ってページネーションを実装する

Railsでのページネーションの導入に関して、とても丁寧に手順が書かれたサイトがあったので、それを見ながら実装するまで。 ※URL:『Kaminariの使い方 Rails3時代のpaginationの標準候補』http://memo.yomukaku.net/entries/238 ○インストール Kaminariとい…

RailsのアソシエーションまわりでNoMethodErrorが起こった時に思い出したいこと

1週間くらい前にも全く同じ所で30分くらい固まっていたのに、また同じ所で15分くらい詰まっていたので自分用にメモをしておく。 ・外部キーの設定もしっかりやった ・モデルへのリレーションの設定もやった 「アソシエーションの設定は整った」と思いきや、…

Rails3のActiveRecordでOR検索をする

単純にwhereメソッドをメソッドチェインでつないでいくとAND検索になってしまう。 User.where(:owner_flg => true).where(:manager_flg => true) → SELECT `users`.* FROM `users` WHERE `users`.`owner_flg` = 1 AND `users`.`manager_flg` = 1; ORを使って…

RailsのActiveRecordでLIKEを使う

LIKEの使いかたのメモ。 User.where('name LIKE ?', '%Bob%').order('created_at DESC').limit(30) 以上。

RailsでURLにパラメータを追加してリンクを生成する方法

mergeメソッドを利用することで、元々URLについていたパラメータ情報を消さずに、追加していくことができる。 例えば、現在のURLが「http://example.com?param1=fuga」の時に、 <%= link_to '[URL]', params.merge(param2: 'hoge') %> 上記のようにして出力…