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

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…

Twitter Bootstrapメモ

RoR

私はtwitter-bootstrap-railsでTwitter Bootstrapを導入したので、Twitter Bootstrap自体は/usr/local/rvm/gems/Rubyのバージョン@Gemセット名/gems/twitter-bootstrap-rails-2.1.3/ にある。 vendor/toolkit/twitter/bootstrap/variables.less:lessで使わ…

Ruby on RailsのアプリケーションでPostfix経由でメールを受信する

RedMine.JP:メールによるチケットの登録を参考につくれば良いみたい。とりあえず、メモ。 Postfixでメールを受け取る設定 以下にまとめたとおり Postfixにて非ユーザー宛のメールを受信して任意のプログラムに渡す RedMineでメールを受け取る仕組み RedMine…

Rails で Cucumberメモ

RoR

基本的な流れ ある1動作や1モデルにおける feature ファイルを作成する featureファイルが ./features/users/user_show.feature であるとき、以下を実行する。 % bundle exec cucumber features/users/user_show.feature 上記コマンドを実行時のメッセージ…

Capybaraメモ

RoR

GitHub:jnicklas / capybara:Capybara本家 おもしろWEBサービス開発日記:Capybara の README 意訳 @yuumi3のお仕事日記:Request Spec, Steakで使う Capybara DSL の情報、サンプル Richard Conroy's Personal Blog:Capybara Reference

チュートリアル「Rails Tutorial for Devise with RSpec and Cucumber」をやってみる

RoR

The RSpec Bookをやってみるで、RSpec + Cucumberが良さそうなことはわかったのだけど、具体的にどう適用したらよいのかわからない。特にほとんどのアプリで最初に作るべきログイン機能の部分。そこで、Rails Tutorial for Devise with RSpec and Cucumberを…

The RSpec Bookをやってみる

RoR

サンプルソースコード The RSpec Book:Source Code インストール % ruby -v ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux] % rails -v Rails 3.2.7 % rvmsudo gem install rspec % rspec --version 2.11.1 % rvmsudo gem install cucumber % cu…

Ruby on Rails 3.2.3から3.2.6へのアップグレード

RoR

環境 RVM on Ubuntu 12.04 準備 % ruby -v ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux] Ruby gemのアップグレード % rvmsudo gem update --system % gem -v 1.8.24 Ruby on Railsのアップグレード % rvm gemset use rails3 % rvmsudo gem upda…

yaml_db で生成したYAMLファイルの日本語が文字化けする

RoR

本番環境のPostgreSQLに格納されたデータを開発環境のSQLite3に持ってくるに書いた方法で、本番環境のPostgreSQLを開発環境のSQLite3へ持ってきたいのだけど、うまくいかなくなった。症状としてはyaml_db で生成したYAMLファイルの日本語が文字化けしてしま…

ImageMagickのバージョンがあがったらRMagickがエラーを吐く

定例アップデートしたら、Railsアプリが動かなくなった。RMagickの再コンパイルが必要らしい。 % sudo gem install rmagick % cd /path/rails_app % sudo bundle update % sudo /etc/init.d/apache2 restart

CentOS で Ruby on Rails

Cent OS 5.8(64bit版)にRuby on Railsをインストール。以下、方針。 Ruby 1.9はソースコードからコンパイル Webサーバーは ngix + unicorn データベース管理ソフトは PostgreSQL CentOSのバージョン確認方法 % more redhat-release パッケージ管理ソフト y…

devise 1.9.3 から 2.0.4へのアップグレード

RoR

はじめに deviseのバージョンを1.9.3から2.0.4に変えたら以下のエラーメッセージがでた。 [DEVISE] Devise.reset_password_within is nil. Please set this value to an interval (for example, 6.hours) and add a reset_password_sent_at field to your De…

エラー: OpenSSL::SSL::SSLError (hostname does not match the server certificate)

RoR

環境はRuby 1.9.3 + Rails 3.1.3。tail -f pinzo.log:Rails3 のメール送信で "hostname was not match with the server certificate" というエラーが出た場合にはによると以下のエラーはRailsがTLSを用いてメールを送ろうとしているために発生するとのこと…

Rails 3.1インデックス

RoR

自分のメモのために自分で書いた Ruby on Rails 3.0のエントリーについてインデックス化しておく。 参考リンク Ruby on Rails API 環境整備 Ubuntu 11.10 で RVM Ubuntu 11.10 + RVM + Ruby 1.9.3 + Ruby on Rails 3.1 Gruff with RVM on Ubuntu 11.10 Ruby …

Ubuntu 11.10 で RVM

Ruby on Railsを用いたWebアプリケーション開発用にRVMを導入する。 参考サイト Ruby Freaks Lounge:第39回 RVM(Ruby Version Manager)による環境構築 RVMのインストール rvm: Ruby Version Managerに書いてあるとおりインストールする。 まずは必要なソ…

Ubuntu 11.10 + RVM + Ruby 1.9.3 + Ruby on Rails 3.1

まずは、gemのアップグレード。 % rvmsudo gem update --systemRVMでRailsのバージョンを管理するのとおりに設定する。 % rvm gemset list % rvm gemset create rails3 % rvm gemset use rails3railsのインストール % rvmsudo gem install rails新しいプロジ…

Gruff with RVM on Ubuntu 11.10

Ubuntu 11.10 Ruby 1.9.3-head on RVM まず、ImageMagickをインストール。 % sudo aptitude install imagemagick % sudo aptitude install libmagick9-devRuby 1.9.3だけど、mkmf.rbのためにruby1.8-devが必要。 % sudo aptitude install ruby1.8-devつぎにr…

Rails 3.0.X + Ruby 1.9.Xで couldn't parse YAML at line XX column XX (Psych::SyntaxError)

RoR

Rails 3.0.X + Ruby 1.8.7では動いていたのだけど、Rails 3.0.X + Ruby 1.9.Xにしたら突然YAMLでエラーを吐くようになった。 % rails server trunk/config/application.rb:15: warning: variable $KCODE is no longer effective; ignored => Booting WEBrick…

Ruby on Rails 3.1.1 で jsMathを使う

RoR

結論。Asset Pipelineを生かした使い方がわからなかった。私は自分が開発しているWebアプリケーションでRuby on Rails 2.3.8 で jsMathを使うに書いたとおり、jsMathというLaTeXの数式コマンドが使えるjavascriptライブラリーを使っている。Rails 3.1からjav…

Ruby on Rails 3.1系のAsset Pipelineでapplication.*以外を使う場合

RoR

a newcomer!:Rails3.1のAsset Pipelineと仲良くなるで書いてあるように、Ruby on Rails 3.1系のAsset Pipelineでapplication.js、application.css ではないファイルを使う場合、config/environments/production.rbでちゃんと明示してあげないと、公開環境で…

devise 1.4.9 で after_sign_out_path_for がうまく働かない

RoR

deviseを用いたセッション管理において、ログアウトした後の処理がおかしくなった。ログアウトした後の遷移先を変更するためには、after_sign_out_path_for を上書きすればよいとのこと。 GitHub:Devise:How To: Change the redirect path after destroyin…

Ruby 1.8.7p352 + Ruby on Rails 3.1.1 + WebRickでセグメンテーションフォルトでまくり

RoR

メモとして。Ruby 1.8.7p352 + Ruby on Rails 3.1.1 + WebRickでセグメンテーションフォルトがでてよく落ちる。たとえば、以下のとおり。 Started GET "/assets/application.css?body=1" for 127.0.0.1 at Fri Nov 11 21:14:03 +0900 2011 Served asset /app…

Rails 3.0.5から3.1.1へアップグレード

RoR

環境 Debian GNU/Linux testing 準備 まずは、パッケージをまとめて最新状態にする。 % sudo aptitude update % sudo aptitude safe-upgrade % ruby -v ruby 1.8.7 (2011-06-30 patchlevel 352) [i486-linux] Ruby gemのアップグレード % sudo gem1.8 update…

ActiveRecordの新記法だと呼び出し順が変わる

RoR

Rails 3.0.7を使っている。以前からそうだったのかもしれない。従来は以下のように書いていたものを @people = Person.find(:all, :condition["hogehoge_id = ?", hogehoge.id])以下のように書き換えたらid順の取り出しではなくなってしまった。 @people = P…

blank? 知らなかった

RoR

知らなかった。車輪の再発明しまくり。 DoRuby! :empty?とblank?の違いって? (゚∀゚)o彡 sasata299's blog:Rails以外の環境でblank?メソッドを使うときの注意