tkymtk's blog

Ruby on Rails及びその周辺について調べたこと。Do whatever you want to do at your own pace.

RSpec: featuresディレクトリ内のspecで、直接HTTPリクエストを送信したいとき。

やりたいこと こんなの before { delete user_path(user) } これはuser_path(user)にDELETEリクエストを発行する。 しかし、featuresディレクトリ内のスペックではできない。 解決策 type: :requestをdescribeの後に付ける。

Ruby on Rails: $ rake routes の結果をmarkdown形式で表示。

こんな感じで出力したい | Prefix | Verb | URI Pattern | Controller#Action | | ----------- | ------ | ------------------------- | -------------------- | | users | GET | /users(.:format) | users#index | | | POST | /users(.:format) | users#cre…

Bootstrap3 ブログのコメントやユーザを今風にスタイリング(Media object)

こんな感じ

RSpec: エラーメッセージをカスタムして日本語で出力する。

方法 expect()文の後ろをカンマで区切る。そして出力したいメッセージを、続けてダブルクオートの中に書く。

Bootstrap3 フッターをページの下部に固定する方法(スティッキーフッター)

2014/07/11: 最後に追記しました。 ことはじめ Bootstrap3でfooterのCSSを設定したかったので、調べたら Sticky footer という方法があった。 しかし、Stackoverflowや既存のサイトを見ると、どうもおかしい。 そこで、Bootstrap3の公式サイトからちゃんとコ…

Rails: フォームのエラーが出た欄を、Bootstrapを使ってスタイリングする方法

CSS .field_with_errors { @extend .has-error; }

2014年までに始めてみる!Ruby on Railsを無料で学ぶ時に知っていると役立つリンク集

今年、Ruby on Railsを学んでみて、役立ったリンクを集めてみました。

FactoryGirl: build と createの違い

違い build Build()メソッドはインスタンスをメモリ上にのみ記録する。 create create()メソッドはテストデータベースにも保存して、データを永続化させる。

はてなブログのデフォルトテーマをもっと見やすく直した。

課題 カテゴリページの表示をもっと良くしたい。

RSpec: カスタムマッチャ Rails Tutorialでハマったところ。should_notの動作

問題 should_notが期待通りに動作しない カスタムマッチャの定義 RSpec::Matchers.define :have_error_message do |message| match do |page| expect(page).to have_selector('div.alert.alert-error', text: message) end

Heroku: webインターフェースからアプリ名を変更したあとに、pushするときに気をつけること。

エラー Herokuのダッシュボードで、アプリの名前を変更してから、git push herokuしたらエラーがでた。 ! No such app as foo-bar-1315. fatal: The remote end hung up unexpectedly

Sublime Text2 エラー

Sublime Text2を開く時にエラーが出るようになった。 エラー こんなの Error trying to parse settings: No data in ~/Library/Application Support/Sublime Text 2/Packages/User/Ruby.sublime-settings:1:1 とか No data in ~/Library/Application Support…

Rails TutorialのフォームをBootstrap3で書き換えた

変更点 span6 offset3 から col-xs12 col-sm-6 col-sm-offset-3に変更。 それぞれのインプット要素を<div class="form-group">で包む インプット要素にclass: "form-control"を指定 ボタンのcssを、btn-largeからbtn-lgに変更。 ついでに、フォームタグにrole="form"を追加するための</div>…

技術書からの英語表現: sanity check

例文 背景: RSpecのテストを書いています。 The first new example is just a sanity check, since regexes are notoriously error-prone, the valid email tests are there mainly as a sanity check on VALID_EMAIL_REGEX. 引用元: Learn Web Development …

技術書からの英語表現: No prizes for ~

例文 No prizes for inferring that all returns an array of all users in the database. - Learn Web Development with the Ruby on Rails Tutorial | Modeling Users

Rails, PostgreSQL: rails console --sandboxを起動しているとき、DBはどうなっているか。

コンソールをサンドボックスモードで起動したとき、データベースへの操作がデータベース上で確認出来ないので調べてみました。

ERDレッスン1まとめ

ERD

1.イベントを見いだす まず核となるテーブルを見出す。目的は何か。 「〜する」または「〜日」という言い方ができるか。 2.リソースを抜き出す 誰が 何を 「〜する」と言うと変 リソース系は複雑なので、まずイベント系から 洗い出してその後じっくりとリソ…

Rails アプリ動作のバックグラウンド(基礎編)2

前回までに見たこと 基礎編1では、scaffoldでUsersリソースを作成して、indexページにアクセスするところまで見ました。 http://localhost:3000/users Listing users Name Email New User 今回はindexページから先をみて行きたいと思います。 /users/new と …

Bootstrap 3 : CSS 順次追加

CSS · Bootstrapから 概要 HTML5 doctype BootstrapはHTML5が必要です。 <html lang="en"> ... </html>

RSpec, Capybara: click_link でテストが失敗するときに、疑うこと。

リンクのパスや、リンクの名前が合っていることを前提とします。 結論 click_linkの直前に、適切なページを訪問しているか確認する。

Railsルーティング: match … via: と get … as: の使い方

get または match … via: 'get' 次の2つは同じこと get '/help', to: 'static_pages#help' match '/help', to: 'static_pages#help', via: 'get'

RSpec: Sporkを起動時にRSpecで名前付きルート(named route)を使う方法

Sporkを起動していると、名前付きルートが上手く働きませんでした。 rspec_helper.rbに以下を追加すれば使えるようです。 Rspec.configure do |config| config.include Rails.application.routes.url_helpers ... end ちなみに、itセクションのdo...end内で…

RSpec: metaタグをテストする方法

findやhave_selectorでvisible: falseを使います。 例: <meta name="viewport" content="width=device-width, initial-scale=1.0"> のテストは↓ expect(page).to have_css('meta[name="viewport"][content="width=device-width, initial-scale=1.0"]', visible: false ) 関連:ruby on rails - Capybara not finding meta tags - Stack</meta>…

Bootstrap 3 : Navbar

デフォルト Navbarはサイトやアプリのナビゲーションヘッダーの役割を果たすレスポンシブな高次のコンポーネント。 モバイルビューでは折り畳まれ、切り替えが可能になる。 viewportの幅が広がるにつれ、横方向になる。

Bootstrap 3 : navbarと .containerの関係

.containerは中のものを中央に配置する。.containerの位置に注意 デフォルト デフォルト(全体が中央,角丸) <div class="container"> <nav class="navbar navbar-default" role="navigation"> ... </nav> </div>

git initを取り消す。(リポジトリごと削除)

Git

Macの場合 削除したいリポジトリがあるディレクトリに移動後、 $ rm -rf .git 参考リンク How to fully delete a git repository created with init? - Stack Overflow 広告 Gitポケットリファレンス作者: 岡本隆史,武田健太郎,相良幸範出版社/メーカー: 技…

Rubyの脆弱性:herokuから早くアップデートしろとメールがきた

原文: [ACTION REQUIRED] Ruby Security Vulnerability; CVE-2013-4164 Ruby(MRI)のアプリを一つでも動かしてる人にはくるらしい。 要約 セキュリティの脆弱性: MRI 1.8.7, 1.9.2, 1.9.3, 2.0.0 詳細: 浮動小数点数パースにおけるヒープオーバーフロー (CVE-…

Git でコミットするときに -mをつけ忘れたがために苦労した話

Git

-mをつけないとコメントを入力する画面になります。 いくら入力しても、どうやって保存して終わるのかわかりません。 どうやら、Vimが起動していたみたいです。 Escキーのあとに:wで保存その後 Esc後に:qで無事完了できました。 ちょっとしたVim体験でした。

Rails4をHerokuにデプロイしたら404になった

Rails4になってから、Railsはプロダクション環境でのインデックスページを生成しなくなったので、 自分でインデックスページを作成しておかないと表示されません。 なるほど。 Rails 4 no longer has a static index page in production. When you’re using …

Rails: モデルオブジェクトとフォーム RailsGuides + API

RailsGuidesとRails APIからの書き出し。 個別の例はAPIに詳しくあります。 モデルオブジェクトヘルパー 特にフォームに共通する用途はモデルオブジェクトを編集または作成すること。 " *_tag" ヘルパーもその用途に使えるが、煩雑になる。 そのためRailsは…

間違いがあれば、ご指摘下さると幸いです。