もくもく部屋な 322 教場にて製造開始。
とりあえずサーバサイドから、ということで。以下を見つつセトアプ。
で、rails c で
Could not find a JavaScript runtime
なエラーが出る。ので、Gemfile の以下を有効にして
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
gem 'therubyracer', :platforms => :ruby
bundle install してリトライ。動作確認無問題。この問題、若い方々と Rails Tutorial してた時に色々アレだったのですが、すっかり忘れておりました。以下を参考に対処盛り込み。
Rspec
ええと Rspec の用意を。以下を見つつ盛り込み。
Gemfile 追加して spec_helper.rb 修正までをナニ。あとは以下で試験追加して云々、なのかな。
$ rails g rspec:integration Hoge
あとは REST なソレをでっちあげれば良いのだと思うのですが色々と要検討な事項があるのか。
ネット障害発生
なんかえらいオオゴトになっているらしく。家でヤるかどうか考え中。
続行
と言いつつばたばたしてる姿を見つつぐだぐだと続行。とりあえず controller 作る。
$ rails g controller memo
あと、試験も追加。
$ rails g rspec:integration memo
以前作ったソレ的に試験項目としては、レスポンスの確認と model の確認してますね。とりあえず POST および GET な API のみ作ってしまう方向。
帰宅後
ええと、ApplicationController.rb に以下を追加。
protect_from_forgery with: :null_serssion
あと、最初に実装するものとしては
- 一覧表示
- 一件表示
- データ追加
ってことにします。本当は
- データ更新
- データ削除
も必要。ついでにヤッツケてしまうかも。コントローラに method 追加して route も云々しておきたいと思います。
class MemoController < ApplicationController
def find_memo_list
end
def find_memo_detail
end
def insert_memo
end
def update_memo
end
def delete_memo
end
end
あと、confit/routes.rb を以下にすりゃよいのかな。
get "/memos/:id", to: "memo#find_memo_list"
get "/momo/:id/:time", to: "memo#find_memo_detail"
post "/write/:id", to: "memo#insert_memo"
で、rake routes したら以下な出力が。
Your Gemfile lists the gem rspec-rails (~> 3.0.0.beta) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of just one of them later.
何? って思ったら rspec-rails な gem の記述が重複してたorz
試験を書いてみる
以下なカンジで。
require 'spec_helper'
describe "Memos" do
describe "GET /memos/hoge.json" do
let(:path) { '/memos/hoge.json' }
it 'returns 200' do
get path
expect(response).to be_success
expect(response.status).to eq(200)
end
end
end
当たり前に試験は失敗。以下で成功するんかな。
class MemoController < ApplicationController
def find_memo_list
render json: {}
end
パスしました。今日は諸々割り込みがアレなのでここで止めます。明日、どこまでヤレるのか。あるいはこの件、再来週に某所でもくもくになるのかどうかorz
とりあえずこの時点で commit つくって push しちまえ (を