Rails

Rails 4 技術者認定シルバー試験 に合格しました

お礼 まずは、以下のサイト様。 macera.hatenablog.comこのサイトを、一日何回も毎日ずっと見続けました。 この試験、あまりに情報が少なくて何を勉強して良いかわからず(問題集も評判悪いようですし)、不安で不安で、もう何回も見なおしました。 今回この…

Rails Tutorial

railstutorial.jp日本語訳、すごいね。第一章をやってみた。 Heroku にあげるときに、以下のエラーが出た。 /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/rubygems/dependency.rb:296:in `to_specs': Could not find ' spring' (= 1.4.3) among 59 total gem(s) (…

Rails Girls の サンプルを試す

ちょっとやってみた。とっても勉強になった。Rails Girls - Japanesefooter については、 Bootsrap の example を参考にした。getbootstrap.comSticky Footer Navbar Template for Bootstrapこの example ページ、実は見た事なかったので、とても勉強になっ…

PGroonga を試す

Ruby on RailsでPostgreSQLとPGroongaを使って日本語全文検索を実現する方法 - ククログ(2015-11-09)最近ちょっと PostgreSQL が楽しくなってきたところ、ちょうどクリアコードさんのブログで全文検索、PGroonga のチュートリアル記事が出てた。 今回、Postr…

carrierwave で新規ファイル保存

github.comgithub.comファイルをアップロードするのではなく、例えばサーバ側で rubyXL を用いて新規ファイルを作ってそれを carrierwave の仕組み上で管理したい。carrierwave 用に mount_uploader した変数に ActionDispatch::Http::UploadedFile を渡せば…

Active Job + Delayed Job

ちょっと時間がかかってしまう処理をバックエンドにまわしたい。 なるべく簡単に。 Rails 4.2 から Active Job が追加され、簡単にバックエンドで実行するジョブの作成やキュー登録が出来るようになっている。Rails ガイドの日本語訳。すごい。素晴らしい。r…

Bootstrap の file field おめかし

デザイン無能なのでBootstrap便利に使わせて貰ってます。 社内シスしか作らないからオワコンとか関係無い。form作ってて、file field だけが違和感。 デザイン無能でも、これはいけてないのはわかる。 ググると、bootstrap-fileinput がまずひっかかった。 …

Rails で XLSX ダウンロード

昨日のリベンジ。Gemfile に rubyML を追加し、bundle 実行。サンプルとして、Userモデルの一覧をダウンロードさせてみる。 クライアントは Win、IE とする。 User モデルの作成 適当に。 % rails g scaffold User name email birthday:date MIME Type の追…

Railsネタ

年度末進行のばたばたで C# の勉強がすすまないので、Rubyネタ。 xlsx 形式で入出力する簡単な方法としては、今のところは rubyXL だけ。なはず。 weshatheleopard/rubyXL weshatheleopard/rubyXL · GitHubRails xlsxダウンロードについて書こうと思ったけど…

RailsによるアジャイルWebアプリケーション開発

第20章 Action DispatchとAction Controller 参考 【翻訳】RESTのベストプラクティス 【翻訳】RESTのベストプラクティス | POSTD ルート config/routes.rb Rails.application.routes.draw do resources :products do resources :reviews end end ルート結果 …

RailsによるアジャイルWebアプリケーション開発

p.260まで。 第16章 タスクK:デプロイと本番環境 過去のスタンダードはApache + Passenger 今は Nginx + Unicorn がスタンダードのようだ Capistranoを使って自動化しないと手間&ミスが起こる 2 -> 3 になってコマンドや書き方が違うので注意 ログのローテ…

RailsによるアジャイルWebアプリケーション開発

第15章 タスクJ:国際化 せっかくなので、言語はjaで。 errorの文言はrails-i18nから拝借。 svenfuchs/rails-i18n svenfuchs/rails-i18n · GitHub config/locales/ja.yml ja: confirm: "本当に良いですか?" layouts: application: title: "Pragmatic Booksh…

RailsによるアジャイルWebアプリケーション開発

第14章 タスクI:ログイン 書籍にあるように、全てのテストに共通するbeforeの定義の仕方が分からなかったので、 Everyday Railsにあるように、LoginMacrosを定義して、各Controller Specでセットした。 ログイン画面ではform_tagではなくform_forを使うよう…

RailsによるアジャイルWebアプリケーション開発

第13章 イテレーションH2 統合テストはfeatureとして、省略して書いてみた。 require 'rails_helper' feature "User Stories" do background do @book = create(:product) end scenario "buying a product", js: true do visit store_path click_button "カ…

RailsによるアジャイルWebアプリケーション開発

第13章 イテレーションH1 p.172まで。 HTMLメールの確認がどうするかわからなくて困った。 require "rails_helper" RSpec.describe OrderNotifier, type: :mailer do before do @order = create(:order) @line_item = create(:line_item, order: @order) end…

RailsによるアジャイルWebアプリケーション開発

第12章 atom形式って、今でもつかうの? config/routes.rb # : resources :products do get :who_bought, on: :member, defaults: { format: :atom } end # : app/controllers/products_controllers.rb class ProductsController < ApplicationController be…

RailsによるアジャイルWebアプリケーション開発

第12章 p.158まで。 spec/models/order_spec.rb require 'rails_helper' RSpec.describe Order, type: :model do # : describe "#add_line_items_from_cart" do before do @cart = create(:cart, line_items: create_list(:line_item, 3)) @order = create(:…

RailsによるアジャイルWebアプリケーション開発

第11章 タスクFのテスト追加。 画像クリックでカートに追加されるテスト。 sc_pathはパス作成のショートカットメソッド。 sleepはanimate用に2と長めにとった。 こういう場合のhave_contentはどこまでやるべき? require 'rails_helper' feature "Store", js…

RailsによるアジャイルWebアプリケーション開発

前回の修正 CSSの記述をし忘れていたからだった。 加えて、個数×の部分が、あのHAMLの記述方式だとHTMLになった際に空白改行が入っているため、 表示幅の都合で改行されてしまう。 例では続けて記述しているため、一単語と判断されるため改行されない、かな…

RailsによるアジャイルWebアプリケーション開発

第11章 タスクF:Ajaxの追加 Ajax使わない、P.131まで。 sideバーの表示のされ方が書籍と違う。 また明日修正する。 app/views/carts/_cart.html.haml .cart_title カート %table %tbody = render @cart.line_items %tr.total_line %td{ colspan: "2" } 合…

RailsによるアジャイルWebアプリケーション開発

第10章 タスクE:もっとスマートなカート カートを空にする、DELETE 部分、IDを渡す必要がないのでroutingを変えた方がいいんじゃないだろうか。 config/routes.rb # : resources :carts, except: [:destroy] do delete :destroy, on: :collection end # : a…

RailsによるアジャイルWebアプリケーション開発

第9章 タスクD:カートの作成 before_destroyとbutton_toの使い方に注意。 app/models/product.rb class Product < ActiveRecord::Base validates :title, :description, :image_url, presence: true validates :price, numericality: { greater_than_or_equ…

RailsによるアジャイルWebアプリケーション開発

第7章 タスクB:検証とユニットテスト validationのテストは面倒なので、shoulda-matchersで済ませてしまう。 これはそもそもRailsのテストになるので余計だ、という人もいるが、自分はぼけてるので書き間違え、設定し忘れがよくあるので書くようにする。 テ…

RailsによるアジャイルWebアプリケーション開発

第Ⅱ部 アプリケーションを構築する 第5章 Depotアプリケーション 画面については、ペーパープロトタイピング(のもっと軽い感じかな)を行う。 modelはER図を描いとく。 個人的におすすめは、AmaterasUMLとA5SQL。すごいよ。 AmaterasUML - Project Amateras…

RailsによるアジャイルWebアプリケーション開発

RailsによるアジャイルWebアプリケーション開発をやってみる。RailsによるアジャイルWebアプリケーション開発 第4版作者: Sam Ruby,Dave Thomas,David Heinemeier Hansson,前田修吾出版社/メーカー: オーム社発売日: 2011/12/01メディア: 単行本(ソフトカバ…

Everyday Rails - 13日目 後半

11. テスト駆動開発に向けて feature レベルで先にテストを書く、と。 この章は特に詰まる点はないが、一点、p.111のspec/features/news_releases_spec.rbのボタンを押すところ。 click_button 'Create News release' はデフォルトのscaffoldに合わせて、 cl…

Everyday Rails - 13日目 前半

10. その他のテスト rakeタスクをテストする rakeタスクファイルにモリモリ書くのではなく、ビジネスロジックを担当するクラスを作成し、そこに閉じ込めちゃいましょう、という話。 そうすることでテスタビリティが向上します、ということ。 personモデル作…

Everyday Rails - 12日目

続けたい日記が続けられなかった。 Android本は返却要請があったので、中止。残念。 しかし、あの本は良かった。Everyday Rails続き! p.106、107 APIのテスト Web APIのテスト。 Web APIってただJSON形式などで返しとけばOKなんだろ?って思ってたけど、そ…

Everyday Rails - 11日目

10.その他のテスト VCR、geocorder VCRは外部API用、結果保存ライブラリかな。 vcr/vcr vcr/vcr · GitHubgeocorderは地図情報(位置情報か)を取得するライブラリ。 alexreisner/geocoder alexreisner/geocoder · GitHubGemfileに、それぞれを追加。 以下テ…

Everyday Rails - 10日目

10.その他のテスト Timecop Gemfileに testグループに gem 'timecop' を追加。 例を通すためにcontrollerを作る。indexだけあればよい。 ./bin/raile g controller PayTaxes index ./app/controllers/pay_taxes_controller.rb class PayTaxesController < Ap…

Everyday Rails - 9日目

modalが表示しきる前にスクリーンショットを撮っていた件を修正。 適当にsleep 0.5などとしてやると撮れた。0.2だと表示途中だった。面白い。 jQueryでAjaxを使う場合は以下の方法が紹介されていた。 Automatically wait for AJAX with Capybara 10.その他の…

Everyday Rails - 8日目

10.その他のテスト この章はコード部分がないので簡単に、テストが通るくらいの感じで。Emailのテスト部分。 bmabey/email-spec spec/rails_helper.rb # : require 'email_spec' RSpec.configure do |config| # : # Email Spec config.include EmailSpec::He…

Everyday Rails - 7日目

9.スペックの高速化 subject, let, specify shoulda-matchers Gemfile の testグループに gem 'shoulda-matchers' を追加d 書き方を書籍とちょっと変える カスタムMatcerは使い方が難しそう よほど重複しない限りは使わないほうが見通しが良さそう spec/sup…

Everyday Rails - 6日目

前回、P.64でcreateのテストにidをパラメータで渡しているが(書籍自体そうなっている)、不要なので削除しておく。あってもStrong Paremetersの機能で弾かれるので、問題無いと言えばない。 8.フィーチャスペック まず、この章ではブラウザを使ったテストを…

Everyday Rails - 5日目

P.57までの課題 contacts_controller_spec.rbにテストを追加。 describe 'PATCH hide_contact' do before do @contact = create(:contact) end it 'marks the contact as hidden' do patch :hide_contact, id: @contact expect(@contact.reload.hidden?).to …

Everyday Rails - 4日目

P.57まで。 Controllerのテスト。 特に難しい点はなし。もっと纏められそうだけど、後で纏めるのかな? require 'rails_helper' describe ContactsController, type: :controller do describe 'GET #index' do context 'with params[:letter]' do it 'popula…

Everyday Rails - 3日目

P.44 まで。 FactoryGirlのファイルは、application.rbに以下設定が無くても、設定したのと同じ場所に作成される。 g.fixture_replacement :factory_girl, dir: 'spec/factories' factoryファイルはrakeコマンドで作成できる。 また、ディレクトリ掘るとプロ…

Everyday Rails - 2日目

P.32まで。特に難しいところもない。 わざと冗長に書いて、そこから簡潔にするという勉強方法の第一歩目、なので、面倒ではあった。 require 'rails_helper' describe Contact, type: :model do it "is valid with a firstname, lastname and email" do cont…

Everyday Rails - 1日目

Nitrous.IOをちらほら耳にするので触ってみようかと。 以下書籍を写経してみる。 Everyday Rails - RSpecによるRailsテスト入門NitrousP.14まで。 ./bin/rspecは以下コマンドで作成する必要がある。READMEに書いてある。 $ bundle binstubs rspec-corerspec/…