RoR

Rails 6.1 + Ruby 3.0.2でテスト時にエラーがでる

RoR

Ruby on Rails チュートリアル 第6版 第3章のテストの節を実行していたら、以下のエラーに直面した。やっぱり、ちゃんとチュートリアルどおり、指定されたバージョンでやらないとだめよね。 stackoverflow.com似たような人がいるかもしれないのでメモ。 チュ…

yasaichi氏のRuby on Rails 論考

RoR

メモ。 speakerdeck.com speakerdeck.com

Ruby on Rails 5.2.1 上でdevise 4.5.0を利用する

RoR

目的 Ruby on Railsでよく使われている認証周りのgemライブラリーであるdeviseをつかってログイン機能を用いる。 deviseの標準ではemailに基づいてユーザを区別しているが、usernameでユーザを区別できるようにする。 参考 Gitub: Devise deviseを用いたユー…

Rails5 と devise 4.4 でログイン後にリダイレクトしない

RoR

公開環境(production)において、Rails5.0.6 + Ruby 2.4.3 + devise4.4.1でログイン成功後にリダイレクトせず、ログイン時のページにとどまるようになってしまった。 ただ、開発環境(development)においてRails5.0.6 + Ruby 2.4.2 + devise4.4.1はそれが…

Debian 8.7 + Ruby 2.4.0 + Gem 2.6.10 therubyracerのインストール失敗

RoR

原因 何バージョンか前に32bit版のDebian GNU/Linuxをバージョンアップで64bit版に変えていたため、32ビットのアーキテクチャia32と認識されていたらしい。アーキテクチャをamd64に統一したら、うまくインストールできた。 エラー情況 タイトルのような環境…

フォームオブジェクトで fields_for を使う:editの場合

RoR

フォームオブジェクトで fields_for を使う:newの場合の続き。 edit.html.erbの準備 new.html.erbと共通部分を _form.html.erb へ抜き出す。new.html.erbは以下のとおり。なお、最後の #editアクションへのリンクの中のidは適当に決めている(今回はidを使…

フォームオブジェクトで fields_for を使う:newの場合

RoR

続きはこちら → フォームオブジェクトで fields_for を使う:editの場合 環境 ruby 2.2.2p95 Rails 4.2.1 やりたいこと RailsGuids日本語訳:Action View フォームヘルパーにあるとおり、オブジェクト同士が1対多や1対1の関係になっているときの fields_for…

フォームオブジェクトのテストをRSpecで書く

RoR

フォームオブジェクト(Form Object)の説明は以下参照。 肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳):これの3番目 Rails4でFormオブジェクトを作る際に気をつける3つのポイント FormオブジェクトのURLの渡し方について Form objec…

Single Table Inheritance を利用し、かつ、form_for では親クラスのコントローラーを使いたいとき

RoR

こんな人私の他にいるのかわからないけど、ハマったのでメモ。 前提 Fruit モデルを継承した Apple と Orange を Single Table Inheritance で実現する。 # app/models/fruit.rb class Fruit < ActiveRecord::Base self.inheritance_column = :type 〜省略〜…

RSpec3 & FactoryGirl & StrongParametersでハマった

RoR

RSpec3とFactoryGirlを使ってControllerのテストを作っている時にStrongParametersで苦戦を強いられたのでメモ。先にまとめると FactoryGirlのattributes_for()でフォーム入力データを晴々するときは、本当にフォームから渡すキー以外は削れ StrongParameter…

Bootstrap3をRails4で使うときのメモ

RoR

Lessで使う場合とSass(Scss)で使う場合で設定の仕方が違うらしい。 本体 Bootstrap 3 Bootstrap3移行ガイド LessとSass(Scss)の違い (DxD)∞:CSS拡張メタ言語「SCSS(Sass)」と「LESS」の比較 LessはJavascript製インタープリターでCSSを生成 Sass(Scss…

"PG::InsufficientPrivilege: ERROR: permission denied to create database"がでたとき

RoR

config/database.ymlで定義しているユーザがPostgreSQL上でデータベース作成権限を持っていないため、上記のエラーがでる。まずは、状況確認。rails_userというのがconfig/database.ymlで定義しているユーザとする。 % sudo su postgres % psql # \du List o…

GLYPHICONS

RoR

470種類のフリー単色アイコンを配布している。お金だすともっと多くの種類&フォーマットでアイコン手に入る。 GLYPHICONS - library of precisely prepared monochromatic icons and symbols. Twitter Bootstrap 3系でも利用されている。 Twitter Bootstrap:…

単一テーブル継承(Single Table Inheritance)

RoR

ORマッパーの場合、1つのモデルと1テーブルが対応する。このとき、Model AとModel Aの特例であるModel B, C, Dがあったとき、B, C, D に対してそれぞれテーブルを作成せず、Aに対応するテーブルで、B, C, Dのモデルのデータを格納するのが単一テーブル継承。…

Rails 4.1以降のランダム文字列管理

RoR

Rails 4.1以降はランダム文字列を config/secrets.yml に集めて管理するようになったとのこと。 2017/2/6追記:devise独自に設定しなければ、Railsのsecret_base_keyをつかうとのこと。 Rails4.2+Deviseでproductionで起動するとDevise.secret_key was not s…

RSpecコマンドメモ

RoR

GitHub: RSpec GitHub: RSpec Rails GitHub: FactoryGirl GitHub: factory_girl_rails 参考文献 パーフェクト Ruby on Rails 7章: Rails 4.1 + RSpec 3.0 Everyday Rails - RSpecによるRailsテスト入門:Rails 4.0 + RSpec 2.14 Gemfileの設定 RSpec + Facto…

パーフェクト Ruby on Rails 6章メモ

RoR

Ruby on Rails の3.2あたりからついていけない気がしていたので、知識を更新するためにパーフェクト Ruby on Railsを読んでいる。知らなかった話がたくさんあったので自分のためにメモ。 単体テストを自動生成しない コントローラーやモデルを生成したときに…

Ruby on Rails 3.2.11 から 3.2.17へのUpgrade

RoR

Rails 4への橋渡しとして。 環境 rvm 1.25.22 ruby 1.9.3p545 gem 2.2.2 関連 Ruby on Rails 3.2.9から3.2.11へのアップグレード Ruby gemのアップグレード % gem update --system % gem -v 2.2.2 Ruby on Railsのアップグレード % rvm gemset use rails3 % …

Ruby 2.1.0 + Ruby on Rails 4.0.2

RoR

Ruby on Railsのデモを走らせるまで非常に手間取った。 環境&前回のメモ Ubuntu 12.04 LTS Ruby on Rails 3.2.9から3.2.11へのアップグレード RVMによるRubyのバージョンのアップグレード RVMでRuby 2.1.0へ % rvm get stable % rvm list known % rvm upgra…

FactoryGirlをRuby on Railsで使うときの覚書

RoR

さっぱりわからんので覚書 公式 GitHub:FactoryGirl Wiki Ruby on Rails (3.x)での設置方法 FactoryGirlRailsを導入する。Gemfileに以下を追記する。 group :development, :test do gem "factory_girl_rails" gem "database_cleaner" endRSpecと一緒に使う…

lazy_high_chartsの1.3.2から1.3.3への変更にハマった

RoR

Javascriptを用いて高度なグラフを描くライブラリHighCharts.jsをRuby on Railsから使うライブラリlazy_high_chartsのアップデートでハマったので、同じようにハマる人がいるかわからないけどメモ。ちなみに、今の最新は1.4.1。 ハマりどころ1:インストール…

Ruby on Rails 3.2.9から3.2.11へのアップグレード

RoR

まだ途中。 環境 RVM on Ubuntu 12.04 準備 % ruby -v ruby 1.9.3p362 (2012-12-25 revision 38607) [i686-linux] Ruby gemのアップグレード % gem update --system % gem -v 1.8.24 Ruby on Railsのアップグレード % rvm gemset use rails3 % gem update ra…

created_atがNULLで保存される

RoR

何が原因なのかわからないけどとりあえずメモ。ここ数日以下のエラーが頻発するようになった。 PG::Error: ERROR: 列"created_at"内のNULL値はNOT NULL制約違反です : INSERT INTO "answers" ("hogehoge", "created_at", "memo", "updated_at") VALUES ($1, …

Thin web serverでのsend_fileのタイミング

RoR

開発環境に使っているThin web serverにおいてsend_fileの呼び出し直後に、send_fileで送ったファイルを削除するとInternal serverエラーで止まる。追記:本番環境(Apache + Passenger)の場合、Internal Serverエラーにはならないが、ダウンロードするファ…

yaml_dbを用いたデータベースのスキーマ変更を行ったときのデータ移行

RoR

データ量が少ない(百MBぐらいまで)場合。開発をつづけるうちに公開版と開発版でデータベースのスキーマが違ってしまったとき、公開版のデータを消すことなく、新しいスキーマになったデータベースに移行したいことがあった。SQLをいじればよいのだけれども…

Ruby 1.9.3p194からp372へ、RoR 3.2.8から3.2.9へのアップグレード

RoR

メモ。 環境 RVM on Ubuntu 12.04 ruby 1.9.3p327 Ruby gemのアップグレード % rvmsudo gem update --system % gem -v 1.8.24 Ruby on Railsのアップグレード % rvm gemset use rails3 % rvmsudo gem update rails % rails -v Rails 3.2.9bundlerが自動でア…

ActionMailerでJIS(ISO-2022-JP)のメールを受信すると incompatible encoding regexp match (US-ASCII regexp with ISO-2022-JP string) になる

RoR

RedMineでメールからのチケット登録をできるようにしようとドキュメントどおりにやっていただけど、incompatible encoding regexp match (US-ASCII regexp with ISO-2022-JP string)になってしまいうまく登録できなかった。なので原因を探っていたところ、結…

WEBrickのログにasset関連のログを出さない方法

RoR

Gemfileに以下を追加 group :development gem 'thin' gem 'rails-clean-logs' end導入する。 % rvmsudo bundle installテスト用サーバーの起動はいかのとおり % rails server thin 日本の天ぷら情報:Rails Serverのログを抑制する方法 kenmituoの日記:WEBr…

Twitter BootstrapのCSSにあわせたフォームタグ

RoR

Base CSS:Formsで定義されているようなタグをActionViewのヘルパーを使って吐き出す。以下の続き Twitter Bootstrapメモ Ruby on Rails 3.2.8 で Datepicker for Bootstrapを使う Radioボタン app/helpers/application_helper.rbに以下を加えた。 # 縦に並…

Ruby on Rails 3.2.8 で Datepicker for Bootstrapを使う

RoR

とりあえず使うだけ。 Nerian / bootstrap-datepicker-railsを用いて導入する。まず、Gemfileに以下を追加 gem 'bootstrap-datepicker-rails'インストールする。 % rvmsudo bundle installapp/assets/stylesheets/application.cssに以下を追加する。 *= requ…