プログラミングガール

Developing a better me

Rails

Rails|FactoryGirlでユニークな値を指定したいとき

背景とやりたいこと ユニーク制約を付与したため、create_list で一度にテストデータを作成しようとした場合、値が重複しているとお叱りを受けた。 ActiveRecord::RecordNotUnique: Mysql2::Error: Duplicate entry 修正前 user_name はユニークな値になるよ…

Rails|Deviseのログアウトでルーティングエラー

事象 ユーザー認証にDeviseを使用しているのですが、サインアウトをしようとした際、以下のようにエラーになってしまいます。 ログインまわりのソースコード↓ <% if user_signed_in? %> Logged in as <strong><%= current_user.email %></strong>. …

特定のページのみ特定のCSSを読み込ませる

やりたいこと 特定のページ(今回はサイトのTOPのWelcomeページ)のみ特定のCSSを読み込ませたい。 HOWTO ① 特定のページ用のlayoutを作成する /app/views/layouts/welcome_layout.html.erb ② コントローラーに使用するlayoutを明記する class WelcomeContro…

Rails|Emailのバリデーション

背景 はじめはemail_validatorを使用していたのですが、 「hogehoge@hoge.com」のように入力された時、うまくバリデーションがかからなく・・・。 あらためて調べてみると、以下の場合はうまくバリデーションがかかっていないようでした。 先頭に半角/全角…

Rails|レイアウトを新規で作成する

なにがしたい Viewを表示する際に、「layout.html.erb」とは別のレイアウトを作成して適応したい。 シチュエーション hana-ori.hatenablog.com 上記の方法でerror画面をカスタマイズすると、Viewに対応するコントローラーがないため、「Template Inheritance…

Rails|エラーページのカスタマイズ

なにがしたい エラーページをいい感じにカスタマイズしたい。 HOW TO 1. view配下にerrorsディレクトリを切り、「error_404.html.erb」と「500.html.erb」を作成 2. application_controller.rbに下記を記述 class ApplicationController < ActionControlle…

Rails|Cannot add foreign key constraint エラー対処

困ったシチュエーション 後でマスターテーブルを追加しようとした際、以下のエラーに遭遇。 Mysql2::Error: Cannot add foreign key constraint: ALTER TABLE `application_forms` ADD CONSTRAINT `fk_rails_386b13f566` え、どういうこと? 原因 マスターテ…

Rails Adminでenumを扱う

現在( 2016/01/05 )使用している、Rails Admin(0.7.0)でRails4から使用できるモデルのenum値を使用すると、エラーが起こった。 サラッと解決している天才さんがいたので、感謝。 天才のGist ※注意事項 上記のファイルを作成したところ、Linuxの環境ではc…

Rails Admin:fieldの値の表示をあやつる

ここの項目の値は編集させたくないなーとか思ったときに、その項目を readonly にする方法。 config/initializers/rails_admin.rbにて設定可能。 ※ include_all_fields を明示的に記述しないと、なんのfield も表示されないので注意 参考資料:公式wiki

Rails Admin:既存の編集画面に独自の編集項目を追加する

なにがしたい 「ああ、Editページに○○を編集するスペースがほしい! 」と思うことがあるかもしれない。 今回だと、ProductモデルにImageモデルが関連づいていて(1商品が複数の商品画像を持っている想定)、 ProductのEditページにImageの表示順編集項目エ…

Rails Admin:Custom Actionの追加

デフォルトのアクションオプション まずはじめに、Rails Adminのアクションにはこんなデフォルトオプションがあるよ、というご紹介。 オプションのデフォルト値一覧は以下のファイルに書かれている。 github.com register_instance_option :collection? モデ…