/var/log/messages

debugging with sixth sense

沖縄 Ruby 会議にて

もくもく部屋な 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 しちまえ (を

Comments