padrino tips
padrino tips
rspec で test
準備
g project するときに -t rspec すると rspec がすぐ使える。
database へのアクセス
test 環境で migrate しないと table がないと怒られます。
% rake ar:migrate RACK_ENV=test
post
it do の中でpost "/post" して last_response 拾おうとしても、403 が帰ってきちゃいます。 form_tag() 使うなどして token 渡さないと csrf で蹴られちゃうんですね。 テスト環境では外しちゃってもいいかも?
configure :test do set :protect_from_csrf, false end
textarea の行頭空白
.panel-body = form_for(:foo) do |f| %div.form-group = f.text_field(:name) %div.form-group = f.text_area(:content, cols: 80, rows: 20)
とかすると行頭の空白の扱いが変なので、text_area のとこの = を ~ に変えるとうまくいく。
表示させるときも、
.panel-body~ @page.formatted_content.html_safe
のように ~ を使う。
ソースを読む
g admin_map してできた models/pages.rb, views/pages/* とか読むとためになるかも。
splat
sinatra の時見たく get '/*' do だと params[:splat] に入ってくんない。 どうやら get '/*splat' としてあげないとダメなようだ。