頑張ったり頑張らなかったりこの広告は、90日以上更新していないブログに表示しています。Heroku英語版をやっていってるのですが、そろそろ日本語版も参考にしないと辛くなってきましたな・・・。やったこと:debugメソッド経由でデバッグ情報を表示するSassのmixinsでCSSルールのグループをまとめて複数の場所で再利用することができる。Railsには3つの標準的な環境がある。URLsの標準的なセットを通してresourceとしてユーザーと相互作用する(何を言っているのか(ry)Gravatarを使えばユーザーの画像を表示するのに便利。Recordのオブジェクトと相互作用するフォームを作成することができる。サインアップに失敗した際、ユーザーの新規作成画面をレンダリングし、エラーメッセージを出す。Recordにより自動的に決定される。一時的なメッセージを表示するにはflashが標準的なやり方。サインアップが成功した際にはDBにユーザーを作成し、その詳細ページにリダイレクトする。ウェルカムメッセージを表示する。結合テストを行い、フォームから登録する振る舞いと回帰をキャッチする(何のことを言っているのか(ry)セキュアな伝達のためのSSLと、高いパフォーマンスのためのPuma(今回はUnicorn)を使用するように、本番環境のアプリに設定する。usersユーザーのプロフィールページを作っていきます。画像、ユーザー名、マイクロポスト、フォローしている数/されている数などを載せるのですが、今回はまず画像とユーザー名を表示させる。environmentsプロフィールページを動的なものにしていくのですけど、デバッグ環境を整えるかと。RAILS_ENV=productionしかし今回の場合Herokuにデプロイしているのでherokuのコンソールを走らせると良い。trueデバッグの見た目をよくするため、スタイルシートに手を加えます。box_sizing;}.debug_dumpクラスでbox_sizingをインクルードしていると。elementsCSSのルールのグループがパッケージされて、複数の要素に使用することができると?同じborder-boxでも-moz-や-webkit-などのプレフィックスがついているのもあるので、それらをひとまとめにするということかな?そして.debug_dumpクラスで取り込むと。box_sizing;}これはこのように変換される。border-box;}現在のコントローラとアクションが表示されている。resourceURL/user/1でユーザーのプロフィールページにアクセスできるようにしたい。`call'ルートがないよと。routes.rbにてユーザーをリソースに加える。:usersすると今度は、アクションないよと。showアクションを作る。endendそれに対応したviewをつくる。%>単にユーザー名と、メールアドレスを表示するだけ。/users/1にアクセス。DebuggerRails4.2ではbyebugというgemを使って、debuggerと加えれば良い、みたいな。serverのプロンプトにこのように出力される・・・はず。Time-outになってしまった。params[:id]"1"デバッグ終わったら、Ctrl+Dで終了できる。そのあと、コントローラからdebuggerの記述を削除すれば良い。これで何かしら変なところを調べるときにdebugger仕込めば良いと。sidebarユーザー画像を表示させるためにここではGravatarから画像を取得する方法にしているようだ。githubに登録するときにGravatarにも登録してたので、この方法でいきます。hashをベースにしているらしいので、Rubyのhexdigestメソッドを使える。"1fda4469bcbec3badf5418269ffc5968"emailをdowncaseしてあげて、それをhexdigestに渡す。ヘルパーというのを作って、それを/users/showページで表示する。hashを生成し、それをurlの後ろにつける。イメージタグヘルパーに、url指定。alt属性には名前、クラスにはgravatarと名付ける。ああ、ここで受け取ってるんだった。%></title>さらにApplicationHelperで定義したfull_titleヘルパーメソッドに渡してるんだった。alone.今の場合サイドバーなので本文の部分からは外れている、ということなのかな?<aside>ってなんだろ。http://www.marguerite.jp/Nihongo/WWW/RefHTML5/aside.html#SPECIFICATIONShtml5からのようだ。デザインやマークアップの話つまりasideはサイドバーをコーディングする時に使用してもいいという事になります。(おわり)出た・・・出たよ。ここで登録したユーザー名と、github,Gravatarでのユーザー名は微妙に違うけど。真ん中でなくてサイドバーに表示したいので、Bootstrapのcol-md-*を使う。サイドにアイコンが寄っている。formサインアップのための画面を作っていくのですけど、その前に一旦作成したユーザーを削除しようと。db:migrate:resetこれでリセットする。[]>Userが空っぽになってる。users_controllerのnewアクション内でUser.newします。endendで新規登録画面の作成。</div></div>form_forの引数にnewアクションで生成したuserオブジェクトを渡す。スタイル書いてないからこんなもんか。box_sizing;}うん、ましになったぞ。!important;}ふむ。addresses.)なんかemail_fieldを使うのは色々捗るらしい。モバイル端末の中にはメルアドを入力するのに適した特別なキーボードを表示してくれるようだ。signups早速フォームからユーザー作成・・・の前に、失敗した場合の処理を書かなくては。endendコメントにもあるようにまだ最終実行ではないよと。与えた:userパラメーターでnewして、それが保存されてるか/されていないかの分岐を書く。'new'で画面はそのまま。ここでわざと間違った形式で情報を入力してみるかと。メルアドの形式なんかが間違っとる。"bar"ForbiddenAttributesErrorがでる。User.new(params[:user])以下とほぼ等価であるということです。Parametersというテクニックを使用することが推奨されています。Parametersを使用することで、必須のパラメータと許可されたパラメータを指定することができます。:password_confirmation)paramsハッシュでは:user属性を必須とする。:name,:email,:password,:password_confirmationなどの属性を許可している。保存の成功をここで扱う。endendコントローラのuser_paramsメソッド(private)にストロングパラメーターを設定。それをUse.new(user_params)としてuserオブジェクトに渡す。/signupにアクセス、また間違った情報を入力。'new'によって新規作成画面のまま、となる。エラーメッセージを出さないとですね。messagesをパーシャルで表示する。している点に注目してください。これはRails全般の慣習で、パーシャルは複数のコントローラにわたるビューに対し、専用のshared/ディレクトリを使用するようにしていますそうなんや。app/views/shared/_error_messagesを作成しないといけない。%>pluralizeってなんだろな。pluralizeの最初の引数に整数が与えられると、それに基づいて2番目の引数の英単語を複数形に変更したものを返します。あり、不規則活用を含むさまざまな単語を複数形にすることができます。}}さらにRailsは、エラーページにある、divで囲まれたエラーCSSクラスfield_with_errorsを適用しています。やってくれるということかな。field_with_errorsではBootstrapの.has-errorクラスの機能をインクルードしている。}enderrorとなった場合、ユーザーは登録されないので、ユーザー数は変わらないはず。doでできるということか。action.登録失敗したら、そのままnewページをレンダリングすることも確かめる。signups今度はサインアップに成功した場合ですが、そのためのテンプレートをまだ作っていません。saveした後にユーザーのプロフィールページにリダイレクトする。そのままオブジェクト渡せばいいのか。@userredirectする前にflashメッセージを定義。:successというキーを指定。それをレイアウトに仕込んで、画面に表示する。console上で試してみる。:success,:dangerというキーを使う。flashメッセージを画面に出す。</body></html>body>containerの頭にメッセージを仕込む。message_type>という形で埋め込む。alert-successalert-dangerになる。これらはBootstrapのクラス。Tutorialの名前とロゴが使えるそうなので、ユーザー登録に使う。example@railstutorial.org成功すると/users/1にリダイレクトして、このように表示される。users#createというふうに紐付いている。いうわけでテストでもpostで投げるよと。'users/show'が先ほど(失敗した場合のテスト)と違う点。成功後は「リダイレクトされる」リダイレクト先は「ユーザーの詳細(show)ページ」ということかと。deploymentなんだかんだで調べながらで時間かかりましたが、とうとう行きます。sign-upチュートリアルでは最後にまとめてコミットしてるようですが、実際にはこまめにコミットしていくことになるかと。マスターにマージですね。SSL導入デプロイされたアプリケーションが期待どおりに動作するために、SSLが本番環境で動作するための行を1つ追加します。リスト7.29のように変更します。.endコメントアウトされている部分を外すだけです。ありますが、日本語版はここでHerokuにプッシュしちゃいますね。db:migrateBitbucketにプッシュしたあと、herokuにデプロイ。忘れずにherokuでマイグレーションを行う。https://devcenter.heroku.com/articles/ruby-default-web-serverherokuにプッシュしている間、よく見るとワーニングが出ている。webrickじゃなくてunicornにしたほうがいいんですかねー?デプロイしたページを確認してみる。now!ボタンを押すとユーザー登録ページに遷移する。ユーザーの詳細ページはまだ登録後にしか出ないようになってる。