2013-06-01から1ヶ月間の記事一覧

自インスタンスのインスタンスメソッドを呼び出す時の、selfの使い方がよくわからないんです

class Sample attr_accessor :abc def xyz;@xyz;end def xyz=(v);@xyz=v;end def asdf=(v); p "in asdf with #{v}";end def set abc = 'def' xyz = 'uvw' asdf = 'axvaf' end def print p abc p xyz end def set2 self.abc = 'def2' self.xyz = 'uvw2' self.…

トランザクションのメモ

TX本勉強会終了 - 急がば回れ、選ぶなら近道 DBトランザクションメモ(Hishidama's database transaction Memo) ACID (コンピュータ科学) - Wikipedia) そういえばなミック氏のDB本がKoboにあった。Google Play Booksにもあったけど。 達人に学ぶDB設計 徹底…

ActiveRecordでINNER JOINしつつEagerLoadingしたいんです

対象の表に対してふつうに.joins()して.includes()すればいいようです。 ruby 1.9.2p290 (2011-07-09) [i386-mingw32] activerecord (3.1.0) activerecord-oracle_enhanced-adapter (1.4.2) railsでinnner joinするクエリを元に一覧表示画面を表示する場合、…

同一項目に同一バリデータによるバリデーションを複数種書きたいんです

max_salaryによってjob_titleのバリデーションを変えたいなあと思った場合、validatesの記述自体を分けて↓こう書けばよい。 class Job < ActiveRecord::Base self.primary_key = :job_id validates :job_title, length: {maximum: 5, if: ->{max_salary <= 1…

attr_accessorにデフォルト値を持たせたいんです

ぐぐると真っ先にattr_accessor_with_defaultが出てくるから使ってみたらundefinedって言われた。。 今はこう書くのが正しい。 class Employee < ActiveRecord::Base attr_accessor :a after_initialize do self.last_name = 'tanaka' self.a = 'ito' end en…

ActiveRecordでサブクエリのIN句を書きたいんです

ruby 1.9.2p290 (2011-07-09) [i386-mingw32] activerecord (3.1.0) activerecord-oracle_enhanced-adapter (1.4.2) IN句自体はバインド変数を配列にすれば勝手にいいようにしてくれるようです。 サブクエリはArelを徹底活用するのがいいようです。“ふつうに…

saveしているはずなのにsaveできないんです!

ruby 1.9.2p290 (2011-07-09) [i386-mingw32] activerecord (3.1.0) activerecord-oracle_enhanced-adapter (1.4.2) Oracle 11g XEのHRスキーマで SQL> select employee_id, first_name from employees where employee_id = 100; EMPLOYEE_ID FIRST_NAME ---…

ActiveRecordのloggerがカラーコードを付加してきて見づらいんです!

ruby 1.9.2p290 (2011-07-09) [i386-mingw32] activerecord (3.1.0) activerecord-oracle_enhanced-adapter (1.4.2) loggerをしこんでActiveRecordのログを見てみる。 require 'logger' ActiveRecord::Base.logger = Logger.new(STDOUT) するってーと D, [20…

トリガーやストアドプロシージャのソースが見たい。SQL*Plusで。

SQL> conn hr/hr@xe 接続されました。 SQL> select name from user_source group by name; NAME ------------------------------------------------------------ SECURE_EMPLOYEES UPDATE_JOB_HISTORY SECURE_DML ADD_JOB_HISTORY これでソースがしまってあ…

Oracle 11g XEのHRスキーマのテーブルをActiveRecordで書いてみる

Oracle 11g XEのHRスキーマのテーブルをActiveRecordで書いてみる ER図はこちら: 表と表クラスタ class Region < ActiveRecord::Base primary_key = :region_id has_many :countries end class Country < ActiveRecord::Base primary_key = :country_id bel…

sqlplusの画面表示設定の仕方って毎度忘れるからメモ

set linesize 1000 set tab off これでvarchar2型の列の余白が許せなかったらcolumn name format aXXみたいな。

普通のRubyスクリプトからOracle 11g XEにActiveRecordで繋ぎに行く

必要なgemをインストール PS:Desktop> gem install activerecord-oracle_enhanced-adapter Fetching: activerecord-oracle_enhanced-adapter-1.4.2.gem (100%) Successfully installed activerecord-oracle_enhanced-adapter-1.4.2 1 gem installed Installi…

oracle 11g xeにいつものように用意してあるHRスキーマを初期化

PS:yoshi-13> sqlplus hr/hr@xe SQL*Plus: Release 11.2.0.2.0 Production on 土 6月 15 02:14:48 2013 Copyright (c) 1982, 2010, Oracle. All rights reserved. ERROR: ORA-28000: the account is locked そうなんですね。。 SQL> alter user hr account u…

powershellのプロファイルを変更してプロンプトを変える

プロファイルを作成してprompt関数を上書きする 参考 PowerShellでプロファイルを編集するには - nn2003rの日記 PowerShellのプロンプト文字列をカスタマイズする - @IT やってみる New-Item -type file -force $profile sakura $profile でプロファイルに…

validatesでうまくlambdaを扱えなかったメモ

Ruby version 1.9.3 (i386-mingw32) Rails version 3.2.12 Database adapter oracle_enhanced モデルで validates :user, presence: {if: lambda{via == "abc.com"}}, customer_master: {address_presence: lambda{via == "abc.com"}} と書いて、このcustome…