隙を見て issue の盛り込みをしたりなど
issue 向けの branch を作成して
$ git checkout -b Issue#12
とりあえず admin な attribute の盛り込みは以下を参考にしつつ。
ええと、以下をナニしてとりあえず commit 作ります。
$ bundle exec rake db:migrate $ bundle exec rake db:test:prepare $ git commit -am 'Add admin columnt to users table'
で、別な issue 向けの branch 作成。
$ git checkout master $ git checkout -b Issue#11
しばらく二つの branch を並行で云々しながら進める方向。項目てきに
- Users なテーブルの CRUD な機能 (admin のみ操作可能) (Issue#12)
- Provider な model の作成 (Issue#11)
- Provider な CRUD 操作 (admin のみ操作可能) (Issue#11)
- Connection な CRUD への Provider の盛り込み (Issue#11)
みたいなカンジになるのかどうか。
つうか
やっぱ admin 権限ないと駄目な controller が出てくる訳で filter 作らなきゃ、なのかな。authenticate_admin! みたいのがあるんかな。なんか無さげなカンジもしてますが。Admin モデルが云々とかあるし。
あ、以下なカンジで良いのか。
before_filter :hoge def hoge unless current_user.admin? redirect_to :controller => 'conns', :action => 'index' end end
成程。つうか Ruby の unless 良いですね。まださっと出てこないけど。
そういえば
admin なソレについては commit を push して merge しといた方が良いのか。やっとこ。
Github に branch を push して PR 作って merge だん。で以下か。
$ git checkout master $ git fetch origin $ git merge origin/master $ git checkout Issue#11 $ git merge master
これ、migrate はしなくて良いのですね。.gitignore に以下な行あり。
/db/*.sqlite3
次は Provider な scaffold 作って云々な方向ですが、タイムアップ気味。続きは追記で。
続き
ええと、scaffold しまーす。こうかな。
$ rails g scaffold Provider name:string
あら、デフォで rspec とかって記述もあるけどどうなんだろ。ええと rails g の出力は流れてよく分からんかったので git status なナニを以下に。
# Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: config/routes.rb # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # app/assets/javascripts/providers.js.coffee # app/assets/stylesheets/providers.css.scss # app/controllers/providers_controller.rb # app/helpers/providers_helper.rb # app/models/provider.rb # app/views/providers/ # db/migrate/20130926113936_create_providers.rb # spec/controllers/providers_controller_spec.rb # spec/factories/providers.rb # spec/helpers/providers_helper_spec.rb # spec/models/provider_spec.rb # spec/requests/providers_spec.rb # spec/routing/providers_routing_spec.rb # spec/views/
spec が追加されてます。今から何しなきゃなのか、というと
- Provider は has_many conns で Conn は belongs_to Provider なのかな
- controller に before_filter をナニ
- filter は app/helpers/application_helper.rb で定義、で良いのかどうか
最低限、これらは試験を作っておきたいんですが。
とりあえず関連については以下なマッチャがあるのかどうか。
describe Post do it { should belong_to(:user) } it { should have_many(:comments) }
試しに盛り込んでみたが belong_to とか知らん、と言われる。どうも shoulda-matchers というナニを云々らしい。
以下を Gemfile に追加して
group :test do gem 'capybara', '1.1.2' gem 'shoulda-matchers' end
bundle install してリトライ。通ってる模様。今作ったソレはとりあえず以下で。
describe Provider do it { should have_many(:conn) } end
あ、migrate してなかったや。
1) Provider Failure/Error: it { should have_many(:conn) } ActiveRecord::StatementInvalid: Could not find table 'providers'
ええと
$ bundle exec rake db:migrate $ bundle exec rake db:test:prepare $ bundle exec rspec spec/models
したのですが、試験にはパスしません。実装してないので。
1) Provider Failure/Error: it { should have_many(:conn) } Expected Provider to have a has_many association called conn (no association called conn)
なので、実装を盛り込んでみます。
と言いつつ
色々ハマッてます。途中に銭の勘定なナニの割込みが入ったりとかワケワカ状態。
なんとかしつつ以下なエラーが意味不明。
DEPRECATION WARNING: You're trying to create an attribute `provider_id'. Writing arbitrary attributes on a model is deprecated. Please just use `attr_writer` etc. (called from block (2 levels) in
at (ry
そろそろ駄目。