Ruby on Railsアプリケーションを5分でHerokuにデプロイする
こんちにわ、opiyoです。
今日は、Railsチュートリアルに出てくるアプリケーションをHerokuへ反映するまでの手順をまとめてみました。
とても簡単なので、是非やってみて下さい。
GemfileにPostgreSQL設定
group :production do gem 'pg', '0.17.1' gem 'rails_12factor', '0.0.2' end
設定したら bundle install
する
Herokuのユーザ登録
Heroku Toolbeltインストール
インストールできたらHerokuをコマンドラインから操るためのプラプインをインストールする
$ heroku version heroku-cli: Installing Toolbelt v4... done For more information on Toolbelt v4: https://github.com/heroku/heroku-cli heroku-cli: Adding dependencies... done heroku-cli: Installing core plugins... done heroku-toolbelt/3.42.42 (x86_64-darwin10.8.0) ruby/1.9.3 heroku-cli/4.27.26-693efcb (amd64-darwin) go1.6 === Installed Plugins heroku-apps@1.2.7 heroku-cli-addons@0.2.1 heroku-fork@4.1.1 heroku-git@2.4.5 heroku-local@4.1.7 heroku-orgs@1.0.4 heroku-pipelines@1.1.1 heroku-run@2.9.2 heroku-spaces@2.0.14 heroku-status@2.1.0
Herokuにログイン
アドレスとパスワードを聞かれるので、入力してエンター
$ heroku login Enter your Heroku credentials. Email: XXXXXXXXXXXX@gmail.com Password (typing will be hidden): Logged in as XXXXXXXXXXXX@gmail.com
sshキー登録
僕の場合は二つ.pubファイルがあったからかな。 どっち?って聞かれたので「2」を入力してエンターしたら出来た
$ heroku keys:add Found the following SSH public keys: 1) XXXX.pub 2) XXXX2.pub Which would you like to use with your Heroku account? 2 Uploading SSH public key /Users/hogehoge/.ssh/XXXX2.pub... done
Herokuにアプリケーション作成
.....herokuapp.comってのがドメイン名になるんだね
$ heroku create Creating app... done, stack is cedar-14 https://tranquil-depths-10745.herokuapp.com/ | https://git.heroku.com/tranquil-depths-10745.git
Herokuにデプロイしまーす
$ git push heroku master Counting objects: 73, done. Delta compression using up to 8 threads. Compressing objects: 100% (61/61), done. Writing objects: 100% (73/73), 16.60 KiB | 0 bytes/s, done. Total 73 (delta 7), reused 0 (delta 0) remote: Compressing source files... done. ` ` ` ` remote: Verifying deploy.... done. To https://git.heroku.com/tranquil-depths-10745.git
で、ここまで来たら $ heroku open
ってするとブラウザからアプリが見れちゃいます。
きっとここまで5分かかってないです。 細かいところまで分かるようになりたいですが、こんなに簡単に公開できるってことが分かったのは勉強になりますね。
Ruby on Rails チュートリアル2章まとめ(演習も)
こんちには、opiyoです。
人生の生き残りをかけて始めた「Railsブートキャンプ」ですが、今日はRailsチュートリアル第2章をやっていこうと思います。
第1章をまとめたのはこちらからどうぞ。
railsチュートリアル2章の進め方
モデル(Model)の作成
ユーザーモデル
テーブル:users
カラム:id:integer, name:string, email:string
マイクロポストモデル
テーブル:microposts
カラム:id:integer, content:text, user_id:integer
user_idを使って、1人のユーザーに対して複数のマイクロポストが関連付けるという構図になる。
テーブル名は複数形になるので注意!
scaffold
作成、一覧、編集、削除ができる機能を簡単に作ってくれる
$ rails g scaffold User name:string email:string # テーブル名は単数系だからね! Expected string default value for '--jbuilder'; got true (boolean) invoke active_record create db/migrate/20170614093157_create_users.rb create app/models/user.rb invoke test_unit create test/models/user_test.rb create test/fixtures/users.yml invoke resource_route route resources :users invoke scaffold_controller create app/controllers/users_controller.rb invoke erb create app/views/users create app/views/users/index.html.erb create app/views/users/edit.html.erb create app/views/users/show.html.erb create app/views/users/new.html.erb create app/views/users/_form.html.erb invoke test_unit create test/controllers/users_controller_test.rb invoke helper create app/helpers/users_helper.rb invoke test_unit invoke jbuilder create app/views/users/index.json.jbuilder create app/views/users/show.json.jbuilder invoke assets invoke coffee create app/assets/javascripts/users.coffee invoke scss create app/assets/stylesheets/users.scss invoke scss create app/assets/stylesheets/scaffolds.scss
migrate
データベースを更新し、usersデータモデルを作成します。
db/migrate
ディレクトリにあるファイルを見て何をするか判断している。
$ rails db:migrate == 20170614093157 CreateUsers: migrating ====================================== -- create_table(:users) -> 0.0019s == 20170614093157 CreateUsers: migrated (0.0022s) =============================
name
とemail
を持った、users
テーブルを作るってことが分かりますね。
class CreateUsers < ActiveRecord::Migration[5.0] def change create_table :users do |t| t.string :name t.string :email t.timestamps end end end
railsチュートリアル2章の演習問題
2.2.1 演習
問題1
CSSを知っている読者へ: 新しいユーザーを作成し、ブラウザのHTMLインスペクター機能を使って「User was successfully created.」の箇所を調べてみてください。ブラウザをリロードすると、その箇所はどうなるでしょうか?
回答1場所は、bodyタグ直下にあってこんな感じ
<p id="notice">User was successfully created.</p>
リロードすると、pタグは残るが中身のメッセージが非表示になる
<p id="notice"></p>
問題2
emailを入力せず、名前だけを入力しようとした場合、どうなるでしょうか?
回答2
名前のみ登録される
問題3
「@example.com」のような間違ったメールアドレスを入力して更新しようとした場合、どうなるでしょうか?
回答3
問題なく登録される
問題4
上記の演習で作成したユーザーを削除してみてください。ユーザーを削除したとき、Railsはどんなメッセージを表示するでしょうか?
回答4
User was successfully destroyed.
を表示する。
2.2.2 演習
問題1
図 2.11を参考にしながら、/users/1/edit というURLにアクセスしたときの振る舞いについて図を書いてみてください。
回答1
routes → コントローラーのeditアクション → モデル問い合わせなし → edit.html生成 → コントローラーがhtml受け取り → ブラウザへ返す
問題2
図示した振る舞いを見ながら、Scaffoldで生成されたコードの中でデータベースからユーザー情報を取得しているコードを探してみてください。
回答2
@users = User.all
問題3
ユーザーの情報を編集するページのファイル名は何でしょうか?
edit.html.erb
2.3.1 演習
問題1
CSSを知っている読者へ: 新しいマイクロポストを作成し、ブラウザのHTMLインスペクター機能を使って「Micropost was successfully created.」の箇所を調べてみてください。ブラウザをリロードすると、その箇所はどうなるでしょうか?
回答1
2.2.1 演習
とほとんど同じ。
問題2
マイクロポストの作成画面で、ContentもUserも空にして作成しようとするどうなるでしょうか?
回答2
問題なく登録できる。
問題3
141文字以上の文字列をContentに入力した状態で、マイクロポストを作成しようとするとどうなるでしょうか? (ヒント: WikipediaのRubyの記事にある1段落目がちょうど150文字程度ですが、どうなりますか?)
回答3
問題なく登録できる
問題4
上記の演習で作成したマイクロポストを削除してみましょう。
回答4
問題なく削除できる。
2.3.2演習
問題1
先ほど2.3.1.1の演習でやったように、もう一度Contentに141文字以上を入力してみましょう。どのように振る舞いが変わったでしょうか?
回答1
Content is too long (maximum is 140 characters)
というエラーメッセージが表示される
問題2
CSSを知っている読者へ: ブラウザのHTMLインスペクター機能を使って、表示されたエラーメッセージを調べてみてください。
回答2
画面上部にエラーメッセージが表示される
<div id="error_explanation"> <h2>1 error prohibited this micropost from being saved:</h2> <ul> <li>Content is too long (maximum is 140 characters)</li> </ul> </div>
Content
の入力欄が赤枠になる
<div class="field"> <div class="field_with_errors"><label for="micropost_content">Content</label></div> <div class="field_with_errors"><textarea name="micropost[content]" id="micropost_content">12345678901234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 </textarea></div> </div>
2.3.3 演習
問題1
ユーザーのshowページを編集し、ユーザーの最初のマイクロポストを表示してみましょう。同ファイル内の他のコードから文法を推測してみてください (コラム 1.1で紹介した技術の出番です)。うまく表示できたかどうか、/users/1 にアクセスして確認してみましょう。
回答1
users/show.html.erb
に追加
<p> <strong>Content:</strong> <%= @user.microposts.first.content %> </p>
問題2
リスト 2.16は、マイクロポストのContentが存在しているかどうかを検証するバリデーションです。マイクロポストが空でないことを検証できているかどうか、実際に試してみましょう (図 2.16のようになっていると成功です)。
回答2
app/models/micropost.rb
を修正
class Micropost < ApplicationRecord belongs_to :user validates :content, length: { maximum: 140 }, presence: true end
問題3
リスト 2.17のFILL_INとなっている箇所を書き換えて、Userモデルのnameとemailが存在していることを検証してみてください (図 2.17)。
回答3
app/models/user.rb
を修正
class User < ApplicationRecord has_many :microposts validates :name, presence: true validates :email, presence: true end
2.3.4 演習
問題1
Applicationコントローラのファイルを開き、ApplicationControllerがActionController::Baseを継承している部分のコードを探してみてください。
回答1
class ApplicationController < ActionController::Base
問題2
ApplicationRecordがActiveRecord::Baseを継承しているコードはどこにあるでしょうか? 先ほどの演習を参考に、探してみてください。ヒント: コントローラと本質的には同じ仕組みなので、app/modelsディレクトリ内にあるファイルを調べてみると...?)
回答2
app/models/application_record.rb
のclass ApplicationRecord < ActiveRecord::Base
railsチュートリアル2章で学んだこと
MVC(Model-View-Controller)の動き
「/users にあるindexページをブラウザで開く」という操作を行った時、どのように内部では処理が動くのか。
これは、Railsチュートリアルの方を見てください。図もあり説明もありなので分かりやすいです。
https://railstutorial.jp/chapters/toy_app?version=5.0#sec-mvc_in_action
入力チェック(バリデーション)
モデルのファイルmicropost.rb
で最大140文字までの入力チェックを付ける
class Micropost < ApplicationRecord validates :content, length: { maximum: 140 } end
必須入力を付ける場合はpresence: true
を付ける
class Micropost < ApplicationRecord validates :content, length: { maximum: 140 }, presence: true end
1対nの関連付け
https://railstutorial.jp/chapters/toy_app?version=5.0#sec-demo_user_has_many_microposts
簡単に書くと
- 1の方に
has_many
を書いて、nを複数形で指定する - nの方に
belongs_to
を書いて、1を単数系で指定する
Railsコンソール
データベースへアクセスし色々できる
$ rails c exit # 終了
継承について
https://railstutorial.jp/chapters/toy_app?version=5.0#sec-inheritance_hierarchies
- モデルクラスの場合は、
ApplicationRecord
→ActiveRecord::Base
を継承している - データベースに接続する処理やデータベースを扱える処理は
ActiveRecord::Base
側で定義されている - これによって、新しく作ったクラスでデータベースに接続する処理やデータベースを扱える処理を書かなくて色々できる
- モデルだけじゃなくコントローラーも同じようになっている
- コントローラーの場合は
ApplicationController
を継承している
herokuへのデプロイ
手順は1章と同じですが、今回はDBを新たに作ったのでマイグレーションをする必要があります
$ git add . $ git commit -m "終わりー" $ git push origin master $ git push heroku $ heroku run rails db:migrate $ heroku open
違えて実行したscaffoldを無かったことにする
間違えてscaffold
しちゃった時は削除できる
$ rails destroy scaffold Micropost Running via Spring preloader in process 4158 Expected string default value for '--jbuilder'; got true (boolean) invoke active_record remove db/migrate/20170614102406_create_microposts.rb remove app/models/micropost.rb invoke test_unit remove test/models/micropost_test.rb remove test/fixtures/microposts.yml invoke resource_route route resources :microposts invoke scaffold_controller remove app/controllers/microposts_controller.rb invoke erb remove app/views/microposts remove app/views/microposts/index.html.erb remove app/views/microposts/edit.html.erb remove app/views/microposts/show.html.erb remove app/views/microposts/new.html.erb remove app/views/microposts/_form.html.erb invoke test_unit remove test/controllers/microposts_controller_test.rb invoke helper remove app/helpers/microposts_helper.rb invoke test_unit invoke jbuilder remove app/views/microposts remove app/views/microposts/index.json.jbuilder remove app/views/microposts/show.json.jbuilder invoke assets invoke coffee remove app/assets/javascripts/microposts.coffee invoke scss remove app/assets/stylesheets/microposts.scss invoke scss
新しく綺麗な状態のDBを作りたいとき
DB削除 → DB作成 → migrationを一発でやってくれる
$ rails db:migrate:reset Dropped database 'db/development.sqlite3' Database 'db/test.sqlite3' does not exist Created database 'db/development.sqlite3' Created database 'db/test.sqlite3' == 20170614093157 CreateUsers: migrating ====================================== -- create_table(:users) -> 0.0021s == 20170614093157 CreateUsers: migrated (0.0023s) ============================= == 20170614102713 CreateMicroposts: migrating ================================= -- create_table(:microposts) -> 0.0008s == 20170614102713 CreateMicroposts: migrated (0.0009s) ========================
railsチュートリアル3章はこちら
瀧見サキが作る"痛くないハイヒール"はママこそオススメ!
こんにちは、@opiyoです。
ハイヒールを履いた女性は好きですか?
今日は、瀧見サキさんが作るハイヒールについて調べてみました。
瀧見サキさんはママ。
そんな子育て真っ最中のママが作る靴は「エレガントなデザイン」で「芝生の上を歩くような履き心地」というコンセプトで作る「痛くないハイヒール」
これはもーママ達が忘れかけていたオシャレを取り戻す最高の靴なのでは無いでしょうか?
ハイヒールは嫌われ者?
そもそもだけど、ハイヒールってそんなに痛いのかとおもってネット(ガルちゃん)で色々調べてみたのですが、ハイヒールはやはり物凄く「痛い」そうです。
- 産後ぺたんこしか履いてないから ヒール苦手ってより履くのが怖い‼︎ 3年前まではヒールしか履かなかったのに…。 ペタンコは楽だけどなんだかんだ 足が疲れる(。-_-。)
- 見た目のために苦痛を我慢するのは20代で終わりにしました。 一日履いてもぜーんぜん痛くならないハイヒールはありませんか?
- ヒール自体はかわいいと思うしスタイルもよく見えるから好きですけど、歩く距離や一緒に出かける人のこと考えると結局低めの靴になります 長くヒール履けるコツってないんですかね
- 足が薄いらしく、どうしても前にすべって指が痛くなるので苦手です! 履きたいんですけど痛いし疲れる;
- ヒールはスタイルよく見せる重要アイテムなので、無理して履いてます(._.)女って大変(つД`)ノ
http://girlschannel.net/topics/169306/ から引用
確かに妻もハイヒールは我慢して履いてるって昔言ってましたね。
なんかでも色々見てると
- ハイヒールは可愛い
- スタイル良く見えるから履きたい
- カッコイイ
なんて意見も多いですね。
SAKIAS(サキアス)
まーとにかく見てください。写真を上回る説明をできる自信がありません。本当に素敵です。
どこで買える?
- 伊勢丹新宿店 リ・スタイル
- 住所:東京都新宿区新宿 3-14-1 本館3F
- 電話番号:03-3352-1111
- STUDIOUS JINNAN
- 住所:東京都渋谷区神南 1-5-19 1.2F
- 電話番号:03-6277-5582
- STUDIOUS CITY NEWoMan 新宿店
- 住所:東京都新宿区新宿 4-1-6 NEWoMan M2F
- 電話番号:03-5315-4333
- CITYSHOP
- 住所:東京都港区南青山 5-4-41 2F
- 電話番号:03-5778-3912
- Altamira
- 住所:愛知県名古屋市中区栄 3-35-15
- 電話番号:052-251-5488
- LOVE
- 住所:愛知県岡崎市明大寺本町 1-34 岡崎センタービル1A
- 電話番号:0564-83-5969
- AFTER SCHOOL
- 住所:新潟県新潟市中央区西堀通 5-833-8 3F
- 電話番号:025-378-0405
オンラインはこちら
LOVE online store|WOMEN | SAKIAS 商品一覧ページ
伊勢丹、STUDIOUS、ZOZOTOWNは検索にヒットしなかった。
まとめ
いかがでしたでしょうか。
今日(6/14)たまたま付けた「セブンルール」という番組で瀧見サキさんを知りましたが、本当に見て良かったです。
子どもがいると座ったり立ったり、抱っこしたり、追いかけ回したり?(これはうちだけかな…)するのでハイヒールは中々履きずらかったりすると思いますが、そんな経験もしているママが作っている靴だからこそ他とは違う魅力があると思うのです。
テレビの中でも子どもが生まれた年は「手を使わずに履ける靴」を作ったと言っていたので、ママの日常が靴にも反映されている靴です。
- ハイヒールの最大の敵「痛み」が無い靴
- 子育て真っ最中のママが作った靴
もー買わない理由は無いですね。買ってください。
ぼくはホームページにトップページに使われているローファーが欲しいです。メンズは無いのかな?
どうしてもハイヒールに抵抗がある場合は、ハイヒールじゃ無い靴もあるみたいなので一度調べてみると良いかもしれませんね。
Ruby on Rails チュートリアル1章まとめ(演習も)
こんちにわ、opiyoです。
突然ですが、私は今日からプログラミングの勉強をスタートしようと思います。
その名も
Railsブートキャンプ
うん。そのまま!
基礎部分をRailsチュートリアルで行い、最終的に一つアウトプットできるwebサービスを作ることが目標です。
経験上、だらだらやっていると間延びしちゃうので一気に駆け抜けます!
第2章は、こちらからどうぞー
railsチュートリアルの開発環境
cloud9が良いのだろうが、面倒なのでローカルでやる。
cloud9でのやり方は、こちらで。
https://railstutorial.jp/chapters/beginning?version=5.0#sec-development_environment
railsをインストール
$ gem install rails -v 5.0.0.1 $ rails _5.0.0.1_ new hello_app create create README.md create vendor/assets/stylesheets/.keep remove config/initializers/cors.rb run bundle install Bundle complete! 15 Gemfile dependencies, 62 gems now installed. Use `bundle show [gemname]` to see where a bundled gem is installed. run bundle exec spring binstub --all * bin/rake: spring inserted * bin/rails: spring inserted
Gemfileの書き方
- gem 'sqlite3'
特定のバージョンを指定しない場合は、最新のバージョンを取得する
- gem 'uglifier', '>= 1.3.0'
ugliflerが1.3.0以上であれば最新バージョンがインストールされます メジャーバージョンアップになる
- gem 'coffee-rails', '~> 4.0.0'
4.0.4より大きく、4.1より小さい場合にインストールされる マイナーバージョンアップになる(4.0.1, 4.0.2, ...) 4.1, 4.2にはならない
railsサーバーの動かし方
$ rails s
Railsチュートリアルの演習問題
1.3.2演習
<問題1>デフォルトのRailsページに表示されているものと比べて、今の自分のコンピュータにあるRubyのバージョンはいくつになっていますか? コマンドラインでruby -vを実行することで簡単に確認できます。
<回答1>
$ ruby -v ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin15]
<問題2>同様にして、Railsのバージョンも調べてみましょう。調べたバージョンはリスト 1.1でインストールしたバージョンと一致しているでしょうか?
<回答2>
$ rails -v Rails 5.0.0.1
1.3.4演習
<問題1>リスト 1.8のhelloアクションを書き換え、「hello, world!」の代わりに「hola, mundo!」と表示されるようにしてみましょう。
<回答1> application_controller.rbのrender html: "XX"を修正する
<問題2>Railsでは「非ASCII文字」もサポートされています。「¡Hola, mundo!」にはスペイン語特有の逆さ感嘆符「¡」が含まれています (図 1.13)17。「¡」文字をMacで表示するには、Optionキーを押しながら1キーを押します。この文字をコピーして自分のエディタに貼り付ける方が早いかもしれません。
<回答2>¡™£¢∞§¶•ªºœ∑´®†¥¨øåß∂ƒ©˙∆˚¬Ω≈ç√∫˜µ≤≥/ªº–≠π“‘/
<問題3>リスト 1.8のhelloアクションを参考にして、2つ目のアクションgoodbyeを追加しましょう。このアクションは、「goodbye, world!」というテキストを表示します。リスト 1.10のルーティングを編集して、ルートルーティングの割り当て先をhelloアクションからgoodbyeアクションに変更します (図 1.14)。
<回答3>
class ApplicationController < ActionController::Base protect_from_forgery with: :exception def hello render html: "¡Hola, mundo!" end def googbye render html: "goodbye, world!" end end Rails.application.routes.draw do root 'application#googbye' end
gitによるバージョン管理
プロジェクトのコードの履歴を追ったり、うっかり削除してしまったファイルを復旧 (ロールバック) したりという作業が行えるようになります。バージョン管理システムを熟知することは、今ではあらゆるソフトウェア開発者にとって必須のスキル
無料で読める書籍 https://git-scm.com/book/ja/v2
gitをなぜ使うのか?
https://railstutorial.jp/chapters/beginning?version=5.0#sec-what_good_does_git_do_you
git管理下にあれば、例え削除したとしても簡単に復活させることが可能です。
gitのコマンド
- git config
ユーザー名とメールアドレスを設定します。 これらは今後インターネット上に公開されることになりますので、ご注意ください。
- git init
- git status
- git add .
- git commit -m "コメント"
- git log
- git checkout -b modify-README
- git merge modify-README
- git branch -d
- git push
GitHubとBitbucket
gitを扱うための2つの著名なサービスです。 どちらも無料で使えますが、個人で使う分にはそれぞれ特徴があるので気をつけましょう! github 無料の場合は全てpublicになる つまり誰でも見ることができる bitbucket 無料でprivateになる
なので、無難なのはbitbucketでしょうか。 私も昔やったことがあるのですが、知らぬ知らぬ間に大事なkeyとかがコードに書いてて公開してしまうと非常に良くないですよね。 なので、閉じた環境であるbitbuckeの方がそういった心配をしなくて良いので安心です。
しかし本チュートリアルではWebアプリケーションの様々なコードを扱うため、全てのリポジトリがデフォルトで非公開になっている方がセキュリティ上安心して取り組めます。具体的には、本チュートリアルの後半で扱うコードには、暗号化キーやパスワードなどの機密情報が含まれます。このような情報を利用されると、サイトのセキュリティが脅かされるかもしれません。
Herokuにデプロイする
Railsを含むRuby Webアプリ用のホスティングプラットフォームです。Herokuは、ソースコードのバージョン管理にGitを使用していれば、Railsアプリケーションを簡単に本番環境にデプロイできます レンタルサーバーのすごいやつ。osとかdbとかをインターネット越しに扱えて簡単に使うことができる。 http://www.sejuku.net/blog/7858
セットアップは以前まとめた以下を参照 opiyotan.hatenablog.com
Herokuコマンド
- heroku rename rails-tutorial-hello
1.5.4演習
<問題1> heroku helpコマンドを実行し、Herokuコマンドの一覧を表示してみてください。Herokuアプリのログを表示するコマンドはどれですか?
<回答1>
Usage: heroku COMMAND [--app APP] [command-specific-options] Help topics, type "heroku help TOPIC" for more details: heroku access # manage user access to apps heroku addons # manage add-ons heroku apps # manage apps heroku authorizations # OAuth authorizations heroku buildpacks # manage the buildpacks for an app heroku certs # a topic for the ssl plugin heroku ci # run an application test suite on Heroku heroku clients # OAuth clients on the platform heroku config # manage app config vars heroku domains # manage the domains for an app heroku drains # list all log drains heroku features # manage optional features heroku git # manage local git repository for app heroku keys # manage ssh keys heroku labs # experimental features heroku local # run heroku app locally heroku logs # display recent log output heroku maintenance # manage maintenance mode for an app heroku members # manage organization members heroku notifications # display notifications heroku orgs # manage organizations heroku pg # manage postgresql databases heroku pipelines # manage collections of apps in pipelines heroku plugins # manage plugins heroku ps # manage dynos (dynos, workers) heroku redis # manage heroku redis instances heroku regions # list available regions heroku releases # manage app releases heroku run # run a one-off process inside a Heroku dyno heroku sessions # OAuth sessions heroku spaces # manage heroku private spaces heroku status # status of the Heroku platform heroku teams # manage teams heroku update # update heroku-cli
<問題2> 同じく、アプリの状態を調べるためのコマンドはどれですか? 直近に発生したイベントは何でしたか? (ちなみにこのログを調べるコマンドは、本番環境をデバッグするのに便利です)
<回答2>
- heroku ps
- heroku status
- heroku logs
このあたりかなー?
難しかったところ
1.3.1でGemfileを1.5に修正するが、bundle install
するとエラーになる
Resolving dependencies... Bundler could not find compatible versions for gem "actionpack": In snapshot (Gemfile.lock): actionpack (= 5.0.3) In Gemfile: rails (= 5.0.0.1) was resolved to 5.0.0.1, which depends on actionpack (= 5.0.0.1) rails (= 5.0.0.1) was resolved to 5.0.0.1, which depends on actionpack (= 5.0.0.1) rails (= 5.0.0.1) was resolved to 5.0.0.1, which depends on actionpack (= 5.0.0.1) rails (= 5.0.0.1) was resolved to 5.0.0.1, which depends on sprockets-rails (>= 2.0.0) was resolved to 3.2.0, which depends on actionpack (>= 4.0) Running `bundle update` will rebuild your snapshot from scratch, using only the gems in your Gemfile, which may resolve the conflict.
だから、bundle update
しよう
気になったところ
- githubとbitbucket両方でソース管理することは可能か?
$ git remote -v heroku https://git.heroku.com/opiyo.git (fetch) heroku https://git.heroku.com/opiyo.git (push) origin git@github.com:opiyo/railstutorial.git (fetch) origin git@github.com:opiyo/railstutorial.git (push)
この例では、heroku
とorigin(github)
だけどこのようにremote add
してやれば共存は可能。
コマンド打つ時も先頭の文字列を変えてやればOKだ。
$ git push origin master $ git push heroku master
- mergeした内容がpushされているかどうか確認する方法は?
git diff ローカル リモート
コマンドでローカルブランチとリモートブランチを比較すれば確認できる!
$ git diff master origin/master # これね! diff --git a/Gemfile b/Gemfile index 4816f4f..63b826d 100644 --- a/Gemfile +++ b/Gemfile @@ -21,9 +21,5 @@ group :development do gem 'spring-watcher-listen', '2.0.0' end -group :production do - gem 'pg', '0.18.4' -end - # Windows環境ではtzinfo-dataというgemを含める必要があります gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] diff --git a/Gemfile.lock b/Gemfile.lock index 79ef8a6..5c7b646 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -80,7 +80,6 @@ GEM nio4r (1.2.1) nokogiri (1.8.0) mini_portile2 (~> 2.2.0) - pg (0.18.4) puma (3.4.0) rack (2.0.3) rack-test (0.6.3) @@ -158,7 +157,6 @@ DEPENDENCIES jbuilder (= 2.4.1) jquery-rails (= 4.1.1) listen (= 3.0.8) - pg (= 0.18.4) puma (= 3.4.0) rails (= 5.0.0.1) sass-rails (= 5.0.6)
その他の学んだところ
Model-View-Controller(MVC)
ブラウザは一般的にWebサーバーにリクエスト (request) を送信し、これはリクエストを処理する役割を担っているRailsのコントローラ (controller) に渡されます。 コントローラは、場合によってはすぐにビュー (view) を生成してHTMLをブラウザに送り返します。 動的なサイトでは、一般にコントローラは (ユーザーなどの) サイトの要素を表しており、データベースとの通信を担当しているRubyのオブジェクトであるモデル (model) と対話します。 モデルを呼び出した後、コントローラは、ビューを描画し、完成したWebページをHTMLとしてブラウザに返します。
https://railstutorial.jp/chapters/images/figures/mvc_schematic.png
bundle installする時のオプション
$ bundle install --without production
本番用のgem (この場合はpg gem) をローカルの環境にはインストールしないようにするために、bundle installに特殊なフラグ「--without production」を追加します。
Herokuでは、サブドメインの他に独自ドメインも使用できます。実を言うと、このRuby on RailsチュートリアルもHeroku上に置かれているのです
何か不備、不足があればご指摘ください。
岡山出身のSTU48メンバーは3人!これは意外と人気出るかもしれないぞ?
こんにちは、 @opiyo です。
この前コンビニに寄った時、マガジンの表紙がSTU48メンバーでした。
噂には聞いてましたが遂にSTU48始動!ということで、今日はずっと気になっていた「岡山にゆかりのあるSTU48メンバー」について調べてみました。
ちなみに表紙の娘は「山口」の娘で名前は…忘れた!
そもそもSTU48って何だ?
AKB姉妹グループとして、「瀬戸内」エリアを本拠地としたグループで、瀬戸内の頭文字をとって「STU」と命名される。
瀬戸内とは具体的には以下の7つの県。
- 岡山県
- 広島県
- 山口県
- 香川県
- 愛媛県
- 兵庫県
- 徳島県
瀬戸内海を主とした「船上劇場」で講演する予定とのこと。
STU48全体については今度また、まとめたいと思う。
だって来週総選挙あるらしいからさ。もしかしたらSTU48のメンバーが上位に…なんて可能性もあるだろうからね。
しっかり勉強しておきましょう。
では、早速だけどが今日は「岡山」にゆかりのあるメンバーを紹介していくよー
菅原 早記
- 名前:菅原 早記
- ニックネーム:さっきー
- 生年月日:2001年11月14日
- 瀬戸内でオススメのもの:瀬戸大橋
AKB48 49thシングル 選抜総選挙 アピールコメント
ちなみに2ちゃんに応援スレもあるから、気になる方は是非応援しましょう!
【STU48】菅原早記応援スレ★1 [無断転載禁止]©2ch.net
張 織慧
- 名前:張 織慧
- ニックネーム:おちょちゃん
- 生年月日:2001年10月18日
- 瀬戸内でオススメのもの:きびだんご、桃太郎
AKB48 49thシングル 選抜総選挙 アピールコメント
生まれ育ちは日本だが、両親は中国人。そのため中国語が少し話せるんだって。
趣味はゲームでアクションゲームが好きなそうですよ。いつも負けちゃうみたいだけど。
この子は調べてみると分かるけどすでに結構記事になてたりするから人気なのかも。
藤原 あずさ
- 名前:藤原 あずさ
- ニックネーム:あず
- 生年月日:1998年5月10日
- 瀬戸内でオススメのもの:宇野港にあるチヌのオブジェ
AKB48 49thシングル 選抜総選挙 アピールコメント
周りのメンバーからすると歳が上なのかな。MCよかったとか出てくるから、しっかりしたお姉さん的な感じなのかもしれない。
まとめ:
ごめん。最初考えていた最後のオチは「ブスばっか」だと思ってたんだけど、結構可愛い娘いっぱいいるね。
今回は、岡山だったけど他のメンバーも調べて見たくなってしまった。
岡山だと既に岡山イオンとかで講演してたりするし、今後見れる機会もありそうだから地味にチェックしていこうかなと思います〜
岡山イオンでのライブはこちら。 www.youtube.com
STUのメンバーへの投票できるっぽいので皆さんも参加してみてはいかがでしょうか?
- 投票期間:5/30(火)10:00~6/16(金)15:00まで
- 投票方法:なんか色々な方法があるっぽいけど、CD買えば選挙権が多分ついてくる!
今読んだ本あなたは覚えていますか?読んだら忘れない読書術を身につける!
こんにちは、@opiyoです。
僕は読書が苦手で本を読まない人生を歩んできてしまいましたが、最近よく目にするのが「読書する人は年収が高い」「地位が高い」「成功者が多い」です。
ぼくもどうかそんな人達になりたいと思って読書をできるだけするようになりました。
しかし、数をこなすことだけに夢中になったいたぼくはふと気づくのです。
- 「昨日読んだ本、何書いてあったっけ?」
- 「あの本から結局何を学んだのだ?」
読んでいる最中は「これは素晴らしい!」「真似したい!」って思うことがいっぱいあるにも関わらず、いざ問われると何も出てこない。
つまり全く覚えていない。「記憶」に残っていないということは、この読書した時間は何だったのか。
そんな時手に取ったのが、本日紹介する樺沢紫苑さんが書いた本です。
この本はズバリ
「記憶に残る読書術」つまり「自己成長 = 人生を変える」読書術です。
せっかく素晴らしい本との出会い、せっかく時間を使って読んだというのに、それを忘れてしまうなんて、もったいないと思いませんか?
なので本日は…
読んだ本を自分の血となり肉にし圧倒的に成長したい。そのためには、どのように本を選び読めば良いのか?
明日から実践し、習慣化する「1アクション」は何か?
気になった16のワード
著者:樺沢 紫苑
日本で最もインターネットに詳しい精神科医
脳が「重要な情報」と判断する基準は2つです。「何度も利用される情報」と「心が動いた出来事」です。
時間の使い方をどうするかで、私たちが成功できるか、幸福になれるかが全て決まってしまうということです。
月に10冊読むだけで、あなたは読書量において日本人の上位2%に入ることができるのです。
アメリカの小説家スティーブン・キング。彼は自らの小説方についてまとめた「書くことについて」の中で、次のように述べています。
「作家になりたいのなら、絶対にしなければならないことがふたつある。たくさん読み、たくさん書くことだ。
私の知るかぎり、その代わりになるものはないし、近道もない」
読書は私たちを「物知り」にしてくれるだけではありません。読書によって「地頭が良くなる」「知能が高くなる」「脳が活性化し、脳のパフォーマンスが高まる」
ということは、多くの脳科学研究が示しています。
自分の頭でいくら状況を打開する方法を考えても、限界があります。しかし、「本」を読めば何千、何万人もの先人の知恵を借用できるのです。
読書は「習慣」です。読書習慣のない人が、お金持ちになったから急に本を読み出すということは、まずあり得ない話です。
1週間前に読んだ本なのに、人に内容を説明できないような読み方では、「自己成長」することは不可能です。
私が考える「本を読んだ」の定義は、「内容を説明できること」、そして「内容について議論できること」です。
感想や自分の意見を述べられなければ、本を読んでいる意味がないのです。
「自己成長につながる気づき」や「自己成長に役立ちそうな言葉」があれば、ドンドン、ラインを引いていきます。
略
私は1冊の本で、本当に重要だと思えるところを3箇所見つけ、そこにラインを引きます。
読んだ本の中から、自分の心に響いた言葉を1~2行だけ書き写し、それに自分なりのコメントをつけて、紹介すればいいのです。
略
15分で書いた「本の感想」よりも、3分で書いた「名言投稿」のほうが、何倍もの「いいね!」がつくこともあります。
本をきっかけに著者と会うこともまた、読書の楽しみであり、読書術といっていいでしょう。
ホームランの数を増やすには、まずスターティングメンバーに入って、打席に入る数を増やす必要があるのです。
ベストセラーというのは「時流」を反映します。集団心理といってもいい。
「今、何が流行っているのか?」を学び、研究することは、新商品や新製品を開発したり、私のように「本」を書いたりする人にとっては、大きな意味があります。
少なくともほとんどの問題の対処法は本に書かれているわけですから、後は本を読んだあなたが、それを実行するのか、しないのか、それだけです。
問いを叶える3つのポイント
全体を把握してゴールと読み方を決める
- 全体を把握する
- 本を読む目的を設定する
- 「速読」か「精読」かを決める
ぼくの場合は、ついつい「何故この本を選んだのか」「何故この本を読みたいのか」を読む前に考えちゃうのですが、それって結構何となくって場合が多いんです。
なので先ずは全体を把握する。それから「目的」=「この本で何を得たいのか」を考えるってのは凄く納得できるし、すぐ実践できそうです。
ホームラン級の本との出会いが圧倒的な成長を引き起こす
読書は「たくさん読む」よりも「何を読むか」のほうが、10倍重要です。 「たくさん読む」のではなく、「どの本を読むのか?」にフォーカスし、1冊1冊を真剣に選んでいく。そうすることで、真に自己成長につながる「ホームラン本」と出会う確率を高めることができるのです。
ぼくの場合は、やっぱり何となくで選んでしまっている。「あの人がオススメしてた」「何となく検索した時に引っかかった」。これじゃー真剣に選んでその本に出会った人とは本を読むときのモチベーションは違いますよね。
やはりいかに自分と会話できるか。今何に悩み、何を欲してるのか。
これがきっとぼくは出来ていない。
だからブログも手が止まる。
初心者の人に限って、基本的な使い方すら知らないのに、なぜか「上級のノウハウ」を知りたがるのです。
ごめんなさい。これは本当に最悪のクソ野郎(ぼく)ですね。
自分の頭、手、足、身体を使う前に答えを知ろうとする。私の本当に悪いところです。
情報も知識も、今の自分に必要なものを集め、吸収すべきなのです。
まさにこれですね。今の自分に本当に必要な本を読む。
これこそが一番大事なことですね。
じゃーどうやって探すのか。これも書かれていますね。
筆者がその本の「主な読者層」としてどんな人を想定しているのかを考え、そして見抜いてください。
先ずは今から学びたい、得たい情報に対して自分はどのステージにいるのかを考え、どこを目指すのかを考える
筆者が想定するターゲットとマッチしているか確認する
これができればミスマッチがだいぶ減りそうですね。
月に10冊読むだけで、あなたは読書量において日本人の上位2%に入ることができる
少し問いからずれますが、これは凄いことだと思うんです。
確かに前に書いたポイント「質 > 量」なことは間違いありません。いっぱい読んでも忘れてしまっては意味がないからです。
ですが、全てを忘れてしまうなんてことは無いと考えると私のようなバカこそ量で質を上回るのは有りだと思います。
これでライバルに情報量で差をつけられるとシンプルに考えればいいのです。
効率ばかり考えても手が止まっちゃいますからね。
明日から実践する1アクションは
今自分に本当に必要な本を読む
"すぐやる技術"で他人に振り回される人生に終止符を!
こんにちは、@opiyoです。
ぼくは1日の終わりに簡単な日記をつけているのですが、ほぼ毎日反省点欄に書かれているのが「あー今日も何できなかった」です。
意識ばかり高い僕は、「意識 > 行動」になりがちなことに気づいているので今日1日でやらないといけないこと。やりたいことを洗い出すことから毎日が始まるのですが仕事が忙しいを言い訳に何もできず1日が終わることが多く毎日凹んでを繰り返しています。
少し違うかもしれませんが仕事がバタバタしていて、妻に連絡することを忘れることがあります。 その時に必ず言われることは「メールの1本すら連絡する時間も無かったの…」です。
はい。何も言えませんね。
あなたもこんな経験あるのではないでしょうか?
やらないといけないことを、すぐやらないってことは「思考が眠っている」。
つまり何も考えていないってことなんだと思います。
そんな時手に取ったのが、本日紹介する横山信弘さんが書いた本です。
- 作者: 横山信弘
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/07/07
- メディア: 単行本
- この商品を含むブログを見る
この本はズバリ
「すぐやる技術」で自分の人生を幸せにする
自分の人生なのに他人の軸で生きてしまっている。
そんなクソつまらない人生からいち早く抜け出したくありませんか?
なので本日の「問い」は…
自分の人生は自分のもの。他人に振りまわされず一番幸せな人生を送るためにはどうすれば良いのか?
明日から実践し、習慣化する「1アクション」は何か?
気になった16のワード
著者:横山 信弘
現場に入り、目標を絶対達成させるコンサルタント
心が重くなるように感じるのは、何事も「すぐやる、すぐやる」を考えていると疲れることがわかっているからです。
成果につながる行動のみ「すぐやる」のです。
すぐに読めること
すぐに思い出せること
ゴールは「すぐやる」ことではありません。目標を達成させること、成果をあげることがゴールです。
私は昔、「思考が眠っている人」でした。
略
自分を見失っていた時間が長すぎて、自分が今何をすべきなのか、将来に対してどんな行動を起こすべきなのか、全く考えられなかったのです。
目先のことばかりを「すぐやる」のはやめましょう。
すぐやらない人デメリット
1. ストレスがたまる
2. 品質が落ちる
代車理論とは、例えばあなたがホテルのポーターだとイメージし、やるべき仕事は代車の上に乗せる「荷物」だと考えればいい
1. 荷物を軽くすること
2. 気持ちを軽くすること
3. 軽がる通せる力を手に入れること
悩んでいる人は頭が開店していません。さらにわかりやすく言うと、悩んでいる人は、考えていないのです。
極端に追い込まれたり、プレッシャーを感じるとき、人間はフロー状態(我を忘れて何かに没頭している状態)になります。
必ずしも「すぐやってはいけない」理由。それはずばり、他人から軽く扱われてしまうことがあるからです。
自分で決めたルールを必ず守ることです。
「基礎」ができていない人、「習慣」がない人は、すぐに言い訳をします。
行動が遅い人は思考が眠っているだけ
行動できない最大の理由は、「怠惰」なのだと覚えておきましょう。
怠けているだけですので、何の悩みもありません。怠けているのだと自覚するのです。やればいいだけです。それだけです。
明日から実践する1アクションは
ただただ怠けているだけ。今日やると決めたことをやればいい。それだけ
- 作者: 横山信弘
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/07/07
- メディア: 単行本
- この商品を含むブログを見る
2017年春夏ファッションはウエストベルトで違いをつけろ
こんにちは、@opiyoです。
皆さん春夏服はゲットしましたか?
昨日お買い物に出かけたのですが、どの店いっても定員さんが身に着けているものがあったので 今年のトレンドは絶対これだと思うんです。
そのアイテムはずばり
「ウエストベルト」
はー何を今更…ってことであれば、ごめんなさい。 だけど買い物来ている人は誰もしてないけど。定員さんは誰もがしている。
これってファッション業界からのメッセージだと思うんですよ。 まだまだ流行る前なだけであって、この状況はどう考えても一押しって事だと思うんです。
だから私がその流行りを促すきっかけを作れればと思い、人気スナップサイトで アップされてるオシャレな人たちからコーディネート案を学んでいただければと思います!
wear
@risasa0531
@sakurarukas
@marikohat
@happpiness76
@mkrnnn
titivatejp
emi_yasuda
chiiikaa1028
fujiko_fifth_store
yurikohirai
まとめ
こうしてまとめてみると、圧倒的にワイドパンツが多いことが分かりますねー。
ちょっとベルトは太さだけも印象がガラリと変わるので面白いですよね。
ベルトがあるだけで、きれいに見せることもカジュアルに見せることも出来るので普通の格好は飽きたー。って人は良いかもしれません。
是非参考にしてみてください!
【岡山】「吉備中央町キッズパーク」なら晴れでも雨でも最高に楽しめる
こんにちは、@opiyoです。
今回は、吉備中央町キッズパークの紹介です。
吉備中央町キッズパークの情報
住所
対象年齢
0歳〜6歳
利用時間
- 平日:午前10時〜午後5時
- 土日祝:午前10時〜午後6時
休館日
- 毎週火曜日
- その日が祝祭日に当たる場合、開館し、翌日が休館日
- 12月28日~1月4日
- イベント、点検などにより、臨時休館日があります。
電話
0866-56-7010
キッズパークの特徴
3歳から6歳児を対象にした大型遊具を廃止地子供たちが安全に自由に遊べることができ、親同士が交流できる多世代交流室と0歳から2歳児を対象としたおもちゃを取り揃え、地域玩具やクッション性に優れた安全遊具を配置した多目的室があり楽しく遊ぶことが出来ます。
そして、何より嬉しいのはキッズパークのご利用は無料です。
吉備中央町キッズパークの入り口
キッズパークの中
外の公園
外に出ると大きな滑り台もあります。
まとめ
キッズパークは室内なので雨の日でも遊びに行けるのは本当に助かります。
雨の日は本当に何をするか悩みますよね。どこか出かけても室内ってなるとお金がかかる遊びになりがちですし、家に閉じ込めておくのは逆に、子供も親もストレス溜まって大変なので。
施設の場所名は、「きびプラザ」と言うそうです。
キッズパーク以外にもコンビニや飲食店もありますし、芝生がとても綺麗なので弁当持って遊びに行くのもありですね。
芝生でご飯食べてる人いっぱいいましたよ。
また、私が行った時は駐車場横でイベントもやっていて非常に盛り上がっていました。
ってな感じでしょうか。
今回は、「吉備中央町キッズパーク」をご紹介しました。
出来たばっかりで、凄く綺麗ですので是非一度遊び行ってみてはいかがでしょうか?
林修の仕事原理 壁を打ち破る37の方法
こんにちは、@opiyoです。
本日紹介する本は林修先生が書いた本です。
- 作者: 林修
- 出版社/メーカー: 青春出版社
- 発売日: 2014/10/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
林先生の仕事観に基づく仕事の基本、すなわち「仕事原理」についての本です。
「人生問題 = 職業問題」
どんな人間も仕事をしなければ生きていけない。
だとしたら、仕事といかに向き合うかについて、もっともっと考えるべきではないか。
では、林先生はどうのような考えて仕事をしているのか知りたくありませんか?
なので本日の「問い」は…
林先生の考える仕事原理を学び、自分は何が悪いのか、どうすれば良いのか?
明日から実践し、習慣化する「1アクション」は何か?
気になった16のワード
- やりたくない仕事を全力でやるとやりたい仕事に近く
- 「一流」を目指すことから全てが始まる
- とにかく観察せよ!
- 歯医者に泣く資格はない。「全て自分が悪い」と考えよう
- お金はあくまでも手段。最終的な目標にしてはいけない。
- お金を使った経験が「内なる財産」になる
- 人生で何度も読み返す「座右の書」を見つける
- 自分お頭で考える人間だけが成長し続けられる
- 好きか、嫌いか、できるかできない
- ”自分の居場所”を真剣に見つけよう
- 仕事ができる人は女性を味方につける
- 何かに負ける時原因は3つ
- 圧倒的な戦力差をつけることの意味
- ときには朝5時にメールしてやる気をアナウンスする
- 女性を口説くコツなんてない
- 考えないから考えられない
明日から実践する1アクションは
すぐに答えを求めずに自分なりの答えを考えてみる
まとめ:林先生の仕事原理とは?
いかがでしたでしょうか?
「おわりに」の部分に書かれていた一文が全てが詰まっているように思ったので、紹介します。
思考は習慣であり、訓練です。考えないから考えられるようにならないのです。
すぐに答えも求めてしまうのではなく、先ず自分の頭で考え答えを出してみること。
林先生からのアドバイス = 「考えるヒント」がいっぱい詰まっています。
是非読んでみてください。
- 作者: 林修
- 出版社/メーカー: 青春出版社
- 発売日: 2014/10/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る