Ruby
RailsでControllerのactionにリダイレクトする時は redirect_to action: :index のように書くものの、クエリストリング付でリダイレクトする時はどうすれば良いか調べた時のメモ。 環境 Rails 6.1.4 対応 redirect_to の引数を def move_with_field redirect…
Railsで、うっかりトランザクションをネストしてロールバックされなくなったので、requires_newとjoinableを調べた時のメモを残します。 なお、調査時のソースコードが長くなってしまったことから、一部のみ記載しています。 もしよろしければ、Github上のソ…
Railsを書いている中で、コントローラのアクションが長くなってしまい、コードの見通しが悪くなったことがありました。 そのような時はFormクラスとフィルタを使うのが良いと同僚に教わったため、リファクタリングした時のメモを残します。 目次 環境 仕様に…
Deviseを使うと認証まわりの機能をRailsに組み込むのが容易です。 ただ、「そういえばDeviseにある各モジュールのデフォルトの挙動はどんな感じだろう」と思ったため、調べた時のメモを残します。 目次 環境 検証するためのRails + Deviseアプリを作成 アプ…
Rails + Deviseにて、Devise標準のメール受信確認用メールテンプレートを差し替えたいことがありました。 そこで Devise の Wiki How To: Use custom mailer · heartcombo/devise Wiki に従い、 % bin/rails g devise:views users ... create app/views/user…
Rails + Deviseでは、ModelにDeviseのモジュールを組み込むと、自動的に routes へ URI Pattern が追加されます。 例えば、 Rails.application.routes.draw do root to: 'home#index' devise_for :users end な routes.rb の時、DeviseのModelが class User …
Rails6.1でセッションをキャッシュとは別のmemcachedへ保存しようとした時、色々調べたことをメモに残します。 目次 環境 デフォルトのセッションストレージ Railsアプリの作成 動作確認 キャッシュの保存先を変更するための準備 フラグメントキャッシュを使…
Rakefileの中に定義されているRakeタスクを確認しようと、 rake -T したところ表示されないRakeタスクがあったため、メモを残します。 環境 rake 13.0.2 原因 ヘルプに書いてありました。 rake -T では desc がないRakeタスクは表示されないとのことでした。…
Rails + Delayed Job な環境で、Delayed Job を使って実行する処理がありました。 例えばこんな感じです。 # Delayed Job で実行 # call_heavy_api中で外部APIを呼んでいるが、その処理が重いとする Task.delay.call_heavy_api({ foo: 'bar' }) そんな中、De…
Macにプレゼンツールのrabbitをインストールし、プレゼンテーマを自作した時のメモを残します。 公式サイト:Rabbit - はじめに 目次 環境 rabbitの動作環境を構築 rbenvのインストール rbenvを使ったRubyのインストール Bundlerを使ってrabbitをインストー…
以前、RakeタスクからFluetnMigratorを実行しましたが、Albacore v2.xではfluentmigratorメソッドがなく、Wikiに書かれている内容では実行できませんでした。 そんな中、Albacore v2.xのGitHubを眺めていたところ、albacore/fluent_migrator.rbとそれに対応…
以前、Herokuにて.NETのbuildpackを使ってNancyをデプロイしてみました。 C# + NancyでJSONを返すWebアプリを作り、Heroku Buttonを使ってHerokuへデプロイしてみた - メモ的な思考的な そんな中、.NET(Mono)環境でもRakeタスクを使いたくなったため、いろい…
APC製UPSに接続されているWindows端末があり、他のWindows端末からそのUPSの状態を確認したいことがありました。 そこで、apcupsdを使ってブラウザから確認することを試してみました。 apcupsd | A daemon for controlling APC UPSes 環境 APC製UPSが接続さ…
前回は日本語テーブル名やカラム名を持つMS Accessから、Sequelのエイリアスを使ってデータを取得しました。 ただ、毎回エイリアスを定義するのは手間なので、 MS Accessにて、日本語カラム名に対してAS句(日本語→シングルバイト)を使用した選択クエリ*1を作…
以前の記事でSequelを使ってMS Accessへと接続できることが分かりました。 ただ、残念ながらテーブル名やカラム名が日本語になっていることがあるため、その場合はどうなるかを試してみました。 環境 Windows7 x64 MS Access 2010 (accdb) Ruby Installer 2.…
以前、Ruby + DBIを使ってMS Accessへと接続してみました。 Ruby + Sinatra + DBI + ODBC で、MS Access(accdb)へ接続する - メモ的な思考的な しかし、毎回生SQL文を書いた上でShift_JISに変換する必要があり少々手間に感じました。そのため、Padrinoのペー…
この前はシリアルポートから受信したデータをChromeAppsの画面に表示しました。 それだけではあまり使い道がないので、その受信したデータをSinatraへ飛ばしてみようとChromeAPIを探してみたところ、chrome.sockets.tcpやchrome.sockets.udpAPIがありました…
以前、Windows Form を使ってシリアル(COM)ポートでの通信を試してみました。 WindowsFormで、シリアルCOMポートから受信したデータを処理する .Net以外でのシリアルポートで通信する方法を調べてみたところ、 Rubyのserialport gemがあったたため試してみま…
Ruby + ActiveLdapでActiveDirectoryにLDAP接続し、ユーザーの所属グループを取得することがあったので、その時のメモを残します。 環境 ドメインコントローラー - Windows Server 2008R2 ドメイン名 - example.local 実行端末 - Windows7 (EXAMPLE.localに…
手元の環境ではプリンターのセットアップをラクにするために、WindowsServerのActiveDirectoryでGPOを使ってプリンターを配信しています。 Windows Server 2008 R2 のGPOにて、クライアントにプリンタを配布する - メモ的な思考的な その環境でEPSONのPX-105…
MS Access(accdb)を使うデスクトップアプリがあるのですが、ブラウザからもaccdbへ接続することが必要になりそうだったので、調べた時のメモを残します。 環境 Windows7 x64 + MS Access(accdb) Ruby 2.0.0p451 (RubyInstaller) + Devkit Sinatra 1.4.5 Ruby…
The RSpec BookやRailsチュートリアルを終えたタイミングでちょうど Everyday Railsの翻訳本が出たため、今度はこちらを手にとって写経をしてみました。 Everyday Rails - RSpecによるRailsテスト入門 - Leanpub 結論としては、RailsやRSpecを独学で学んでい…
以前、GDG信州でvagrant-berkshelfを使った写経環境構築の発表をしましたが、その数日後にvagrant-berkshelfが非推奨になってしまいました*1。 今のところは使えるものの、将来的なことも考えて、手元にある写経用の環境を Vagrant + knife-solo + Berkshelf…
Railsチュートリアル4.0版には各章に演習が付いていますが、模範解答みたいなものは示されていないため、この書き方で良いのかと悩むこともありました。 そのため、復習した時のことを考えて、自分の解答をまとめておきます*1。 なお、4章はsample_appと関係…
「The RSpec Book」の写経を終えた後、より実践的でテストコードがあるものに手をつけてみようと考え、評判の良い「Railsチュートリアル 4.0版」の写経を行いました。 全11章ですべての章に演習が付いているという、それなりに量のあるチュートリアルでした…
RSpecの使い方に慣れるため、評判の良い「The RSpec Book」を写経しました。 手を動かすチュートリアルとしては、Codebreakerというゲームと、Railsの2種類あり、それぞれの作り方がとても参考になりました。 特に、リファクタリングの方法や考え方まで記載…
前回の記事では、コマンドラインからアルクマスケジュールをGoogleカレンダーに登録しました。Rubyを使って、アルクマスケジュールをGoogleカレンダーへと登録する - メモ的な思考的な ただ、毎日コマンドラインから実行するのは手間なため、Herokuを使って…
昨年、GoogleAppEngineとGoogleAppsScriptなどを使い、アルクマスケジュールでいろいろと試してみていました。 記事: GoogleAppEngineとGoogleAppsScriptでアルクマを追いかける - メモ的な思考的な デモ: アルクマップ - 今月アルクマはどこにいるかな ただ…
Windows7でRubyを使ってコマンドラインからGoogleAPIを叩くために、OAuth認証で使用するClientIDやClientSecret・トークンが記載されているYAMLファイルを取得しようとしたところ、いろいろとハマったためメモを残します。 環境 Windows7 SP1 ruby 2.0.0p353…
AipoにAipoアプリを追加することがあったため、やり方を忘れないようにメモを残しておきます。 環境 Aipo端末 Aipo7 Windows7 Aipoアプリを置く端末 Windows7 Ruby 1.9.3p448 Aipoアプリを置く端末での作業 Aipoアプリの作成 AipoアプリはOpenSocial準拠なの…