rake db:schema:dump
rake db:reset
でDB復活。データは消えるっぽい。
気が付いたらrake db:migrateが止まるようになってしもうた。
昔あったメソッドを使おうとする、手動で追加したカラムを追加しようとする、などが原因。
変なことせず、Railsさんのやりたい方法でやらせてあげるのが一番だね。
autotestよりしなやかな自動テスト
autotest/autospecはとても便利。ちゃんとテストを書いてればね。
でもちょっと高圧的というか、もうちょっとゆるくやって欲しいというか。
もっとやさしい、しかも賢いの、ありました。
watchr
Flexible Continuous Testing
・コントローラとモデルだけテストを書く
・autotestは変更部分のみ流したい
と思っていたので、こうやってやりました。これをアプリケーションのrootに置いておけば、コントローラ、モデル、rspecを変更するや否や対応するテストが流れてくれます。かしこいね。
やさしいautospec.rb
でもちょっと高圧的というか、もうちょっとゆるくやって欲しいというか。
もっとやさしい、しかも賢いの、ありました。
watchr
Flexible Continuous Testing
・コントローラとモデルだけテストを書く
・autotestは変更部分のみ流したい
と思っていたので、こうやってやりました。これをアプリケーションのrootに置いておけば、コントローラ、モデル、rspecを変更するや否や対応するテストが流れてくれます。かしこいね。
やさしいautospec.rb
watch('spec\/.*\/*.rb') {|md|system "script/spec #{md[0]} -cfs"}
['controllers', 'models'].each do |t| watch("app/#{t}/.*\.rb"){|md|
spec = md[0].gsub(/app\/#{t}\//, "").gsub(/\.rb/,"_spec.rb")
system "script/spec spec/#{t}/#{spec} -cfs"
}
end
名刺
Railsアプリを配備する目的で借りたVPS。
ドメインもとったし、せっかくなので名刺的なページを作りました。
http://so-wat-cha-say.in/
Debian + Apacheです。別にPassengerを使ってRailsアプリを動かしているので、「名前ベースのバーチャルホスト」でリクエストの振り分けをしました。「名前ベースのバーチャルホスト」…なんとも中途半端な翻訳です。
このあたりを参考にしました。
Hosting multiple websites with Apache2
名前ベースのバーチャルホスト
背景の写真はランダムに表示されるようにしました。リロードしてみてください。
東京で撮ったものと、ドイツに旅行に行った時に撮ったものです。
Ricoh R10で撮りました。ついでに一枚。北の丸公園です。
ドメインもとったし、せっかくなので名刺的なページを作りました。
http://so-wat-cha-say.in/
Debian + Apacheです。別にPassengerを使ってRailsアプリを動かしているので、「名前ベースのバーチャルホスト」でリクエストの振り分けをしました。「名前ベースのバーチャルホスト」…なんとも中途半端な翻訳です。
このあたりを参考にしました。
Hosting multiple websites with Apache2
名前ベースのバーチャルホスト
背景の写真はランダムに表示されるようにしました。リロードしてみてください。
東京で撮ったものと、ドイツに旅行に行った時に撮ったものです。
Ricoh R10で撮りました。ついでに一枚。北の丸公園です。
Labels:
apache
今日のSVNお便利コマンド
マイグレーションが通らないんで、気に入らない文字列を含むのをを消した。
消しすぎて戻すのが大変なので、なんとか工夫してみた。
必要な変更が消えたり、戻ったりしないよう、気をつけてつかってね。
grep "文字列" db/migrate -rl |xargs svn rm
消しすぎて戻すのが大変なので、なんとか工夫してみた。
svn st db/migrate/|grep D|sed -e "s/D//"|xargs svn revert
必要な変更が消えたり、戻ったりしないよう、気をつけてつかってね。
Labels:
bash,
subversion
メールもrspec on Railsしちゃおう
できるぞ~。
送るメールはファイルを直接読みました。
受信はコンソールからやる時と同じ。
to_sでTmailのメールオブジェクトから生メールに戻してあげて。
何を送ったかも~ わかるよ~♪
例によって受け売りです。
RSpec: Testing Mail Delivery (simple)
送るメールはファイルを直接読みました。
before do raw_email = File.read(RAILS_ROOT + '/どこか/test.eml') @mail = TMail::Mail.parse(raw_email) @mail.to = "アドレス" end
受信はコンソールからやる時と同じ。
to_sでTmailのメールオブジェクトから生メールに戻してあげて。
UserMailer.receive(@mail.to_s)
何を送ったかも~ わかるよ~♪
describe "送ったら" do it "送った個数が増えるはず!" do lambda{ #ここで送る }.should change(sent, :count).by(1) endsent.first.bodyで本文見れます。
例によって受け売りです。
RSpec: Testing Mail Delivery (simple)
Labels:
actionmailer,
Rails,
Rspec
bash to rush
Rubyっぽいbash。まじですか。
確かに、BashのUI(interfaceなのは間違いないよね)はたまにヒドイ。Rubyにしたくなる気持ちはわかる。
しかし、、、これはやっぱりきもい。
ここで知りました。
Blink #1 - The first in a series of Link-Blogging posts
Rush
rush is a replacement for the unix shell (bash, zsh, etc) which uses pure Ruby syntax.
確かに、BashのUI(interfaceなのは間違いないよね)はたまにヒドイ。Rubyにしたくなる気持ちはわかる。
しかし、、、これはやっぱりきもい。
myproj.lsまさかのリモートアクセスもできます。
myproj['app/models/my_model.rb'].vi
ここで知りました。
Blink #1 - The first in a series of Link-Blogging posts
知らなんだ
render :partialって毎回書くのうっとうしいなー。と思っていたところでした。
基本、パーシャルしかレンダーしないっす。
What's New in Edge Rails: render Stops Being High-Maintenance
2.3からは
なんとすまーとな。
基本、パーシャルしかレンダーしないっす。
What's New in Edge Rails: render Stops Being High-Maintenance
2.3からは
render @article
なんとすまーとな。
Labels:
ActionView,
Rails
最新のRailsでrestful_authenticationを使う苦労に苛まれる初秋の一日でした。
2.3.4でrestful_authenticationのspecが通らない。この子たちのせいだった。
Rspecが新しいとダメな所がありました。下記のパッチみたいに直せばOKでした(update for rspec > 1.1.12らしい)。
http://github.com/dchelimsky/restful-authentication/commit/ad92c6cb52500c37ef81e30ac4e79adffc2f4d39
formatted_* routesが無くなった。これで通るっす。
いきさつ
What's New in Edge Rails: No More Formatted Routes
Add optional :format argument to named routes
Rspecが新しいとダメな所がありました。下記のパッチみたいに直せばOKでした(update for rspec > 1.1.12らしい)。
http://github.com/dchelimsky/restful-authentication/commit/ad92c6cb52500c37ef81e30ac4e79adffc2f4d39
formatted_* routesが無くなった。これで通るっす。
- formatted_user_path(:id => '1', :format => 'xml').should == "/users/1.xml" - formatted_user_path(:id => '1', :format => 'json').should == "/users/1.json" + user_path(:id => '1', :format => 'xml').should == "/users/1.xml" + user_path(:id => '1', :format => 'json').should == "/users/1.json"
いきさつ
What's New in Edge Rails: No More Formatted Routes
Add optional :format argument to named routes
Labels:
Rails,
restful_authentication,
Rspec
XSS怖い、全部マークアップ外す。
XSS怖いですね。
Webのセキュリティ努力のゴールにあるのは「絶望」のみ
ということで遊びで作ってるRailsアプリもちゃんと対策しようと思いました。
で、Safe ERBを入れようとすると。。。
mongrelだと使えない。わざわざWebrickを使うのもメンドウなんです。
探してみたらお便利プラグインありました。
入れただけで、勝手にマークアップをはずします。何もしないでOK。すばらしい。
TechCrunchで挙がっていた例のこいつ
が、こう
なります。
設定すれば一部のカラムだけ除外とかもできるみたいです。リッチなテキストにしたくなったら、そうします。
xss_terminate
ここで見つけました。
Auto-escaping HTML with Rails
Webのセキュリティ努力のゴールにあるのは「絶望」のみ
ということで遊びで作ってるRailsアプリもちゃんと対策しようと思いました。
で、Safe ERBを入れようとすると。。。
mongrelだと使えない。わざわざWebrickを使うのもメンドウなんです。
探してみたらお便利プラグインありました。
入れただけで、勝手にマークアップをはずします。何もしないでOK。すばらしい。
TechCrunchで挙がっていた例のこいつ
'<script>alert('y0');</script>'
が、こう
'alert('y0');'
なります。
設定すれば一部のカラムだけ除外とかもできるみたいです。リッチなテキストにしたくなったら、そうします。
xss_terminate
ここで見つけました。
Auto-escaping HTML with Rails
AJAXなアクションでflashがついてこない
僕はRailsのflashが好きです。理由はありません。
しかし、こいつ、Ajaxのアクションに対してはうまく動作してくれない。
普通のhttpだとページ遷移すると消えてくれるのですが、どうやらxhrだとそこの片付けをしてくれません。何ということだ…。
なので、下記を参考にがんばって非同期に更新できるようにしました。
Rails Flash with Ajax
flashの部分をpartialに切り出して、毎回page.replace_htmlしてあげる戦略です。
書いてある通りにやろうとしたらダメだった。
ヘルパーにちゃんとpageオブジェクトを渡してあげる。
ちなみにビューのremote_form_forでupdate_pageしようとしたらダメだった。
コントローラを通る前のflashパーシャルをrenderしても、flashに何も入ってないから意味ないし。
しかし、こいつ、Ajaxのアクションに対してはうまく動作してくれない。
普通のhttpだとページ遷移すると消えてくれるのですが、どうやらxhrだとそこの片付けをしてくれません。何ということだ…。
なので、下記を参考にがんばって非同期に更新できるようにしました。
Rails Flash with Ajax
flashの部分をpartialに切り出して、毎回page.replace_htmlしてあげる戦略です。
書いてある通りにやろうとしたらダメだった。
ヘルパーにちゃんとpageオブジェクトを渡してあげる。
module ApplicationHelper
~~~~~
def reload_flash(page)
page.replace_html 'flash', :partial => 'layouts/flash'
flash.discard
end
~~~~
end
ちなみにビューのremote_form_forでupdate_pageしようとしたらダメだった。
コントローラを通る前のflashパーシャルをrenderしても、flashに何も入ってないから意味ないし。
Subscribe to:
Posts (Atom)
Author
Labels
- actionmailer (2)
- ActionView (2)
- activerecord (5)
- Ajax (1)
- apache (2)
- authlogic (2)
- awk (2)
- bash (4)
- block (1)
- cache (1)
- capistrano (1)
- crontab (1)
- Debian (1)
- deployment (1)
- design (2)
- design pattern (1)
- exception_notifier (1)
- factory_girl (2)
- firefox (1)
- flash (1)
- git (2)
- haml (1)
- html (1)
- javascript (5)
- jQuery (3)
- life (2)
- linux (3)
- lisp (2)
- mail (1)
- migration (1)
- mysql (2)
- Passenger (2)
- prototype.js (1)
- Rails (26)
- Rails3 (1)
- rake (1)
- restful_authentication (2)
- Rspec (3)
- ruby (10)
- rubygems (1)
- screen (1)
- script/console (1)
- Security (1)
- shouda (1)
- shoulda (3)
- subversion (2)
- sudo (1)
- tdd (1)
- testing (4)
- thunderbird (1)
- UI (1)
- unix (1)
- vim (3)
- work (1)
- xargs (1)
- xss (1)
- zsh (1)