rails コンソールアプリ コマンドラインからActiveRecord?を使う (console)

railsプロジェクトでたくさんのデータをDBに入れたい。

SQL書くの面倒だからrailsでできるか探した。

結果的にできたが、SQL書いた方が早かったな。。。

それができるコード 

・app/modles/ar.rb

require File.dirname(__FILE__) + '/../../config/environment'
image = Image.create!(:width => 333)
ruby ar.rb

四苦八苦したけどこれだけでできた。

参考にしてもらったサイトでは

rails] コマンドラインスクリプトからModelにアクセスする <http://diary.lampetty.net/20061203.html>

require File.dirname(__FILE__) + '/../config/environment'

とあるが、要するに絶対か相対指定でenvironment.rbをさせればOK

script/console を使ってみる

script/console を使ったら

image = Image.create!(:width => 333)

の一行で済んだ!

$ script/console < ar_test.rb

なんで気づかなかったんだろ

require 'active_record'

RubyのコードからActiveRecord?だけを使う方法 <http://madeira.cc.hokudai.ac.jp/blog/articles/2008/07/03/use_only_activerecord>

ActiveRecord?ActiveSupport? を使ってコマンドラインアプリを作る - ma2の日記 <http://d.hatena.ne.jp/ma2/20061214/p1>

によると

	require 'rubygems'
	require 'active_record'
	#DBに接続
	ActiveRecord::Base.establish_connection(
		      :adapter  => 'mysql',
		      :host     => 'host_name',
		      :username => 'user_name',
		      :password => 'password',
		      :database => 'db_name'
		  )
	#レコードの新規作成
	user = User.new
	user.name = "hoge"
	user.age = 24
	user.save #DBに保存

でもできる見たいだけど、なぜかDBにアクセスできなかった

Ruby on Rails/リクエスト処理を読む - Code Reading Wiki <http://www.dzeta.jp/~junjis/code_reading/index.php?Ruby%20on%20Rails%2F%A5%EA%A5%AF%A5%A8%A5%B9%A5%C8%BD%E8%CD%FD%A4%F2%C6%C9%A4%E0#n9af90c6>

vim-ruby ubuntu

vi にもruby開発で便利なツールがあるので入れてみた。

[-*煙猴*-]: vim-rubyをインストールしてみた <http://www.smokeymonkey.net/2008/09/vim-ruby.html>

を参考に

(1)aptitudeでvim-rubyパッケージをインストール
$ sudo apt-get install vim-ruby
(4).vimrcを編集
	$ vi ~/.vimrc
	set nocompatible
	syntax on
	filetype on
	filetype indent on
	filetype plugin on
上の4行を追加

この2ステップでできた。

一応色分けと、インデントは出きるし、 Ctrl-x Ctrl-Oのオムニ補完(コード補完)もできてる。

でもto_strの補完はあったのにto_sってのがなかったのは何でだろう。

よたらぼ(2008-11-10) <http://www.yotabanana.com/lab/20081110.html>

によると、to_strはあまり推奨されてないのにな


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-08-03 (月) 20:45:51 (3553d)