家族、お子様連れで楽しめるCITY OF DREAMSです。ここはマニラ各空港にアクセスがよく、 できたばかりでホテルも綺麗です。
子供達が十分に楽しめる場所です。
City of dreamはフィリピンへ行かれる人が初心者でも、簡単にアクセスできますし、子供達も楽しめますし、大人たちはカジノなどで、たくさん遊ぶことができます。
フィリピンは南地方を中心に、治安が悪くなり始めています。フィリピンに渡航される場合は十分に情報収集して、渡航しましょう!!!
フィリピン南部に戒厳令が出ています必ず確認しましょう!
北朝鮮のミサイルなどもとても気になります。フィリピンで治安が悪くなったら日本大使館にすぐに助けを求めましょう。
■目次
▶2.Config系のファイルを作ったり、いじったりしたら、とりあえずサーバーを再起動!
▶3.その次は、$ rails generate devise:views
▶4.ログインしたかどうか、フラッシュメッセージを使いましょう!
▶6.Deviseは優れもの!英語がデフォルトですが、日本語訳が簡単に作れる!!
1.Railsのgem “devise”の手順!
Railsを開発する時に素晴らしく優れているのは、やはり”devise”ですよね。このdeviseはぜひものにしましょう!!!
1.まずgemファイルに、gem “devise”を追記。
2.bundle insatll –path vendor/bundle
$rails g devise:install
$ rails generate devise:install
Running via Spring preloader in process 3682
create config/initializers/devise.rb
create config/locales/devise.en.yml
===============================================================================
Some setup you must do manually if you haven’t yet:
1. Ensure you have defined default url options in your environments files. Here
is an example of default_url_options appropriate for a development environment
in config/environments/development.rb:
config.action_mailer.default_url_options = { host: ‘localhost’, port: 3000 }
In production, :host should be set to the actual host of your application.
2. Ensure you have defined root_url to *something* in your config/routes.rb.
For example:
root to: “home#index”
3. Ensure you have flash messages in app/views/layouts/application.html.erb.
For example:
<p class=”notice”><%= notice %></p>
<p class=”alert”><%= alert %></p>
4. You can copy Devise views (for customization) to your app by running:
rails g devise:views
===============================================================================
$rails g devise user
Usersテーブルを作成します!
rails generate devise user
Running via Spring preloader in process 3772
invoke active_record
create db/migrate/20170520110656_devise_create_users.rb
create app/models/user.rb
invoke test_unit
create test/models/user_test.rb
create test/fixtures/users.yml
insert app/models/user.rb
route devise_for :users
ここの時点で、routingで、 devise_for :userがroutes.rbはファイルに記載されます。
そんでMigrateマイグレーションファイルの作成。(今でもマイグレートする度にドキドキしてしまうんですよね!笑)
$rake db:migrate
usersテーブルを作成します!!
$ rake db:migrate
== 20170520110656 DeviseCreateUsers: migrating ================================
— create_table(:users)
-> 0.0688s
— add_index(:users, :email, {:unique=>true})
-> 0.0149s
— add_index(:users, :reset_password_token, {:unique=>true})
-> 0.0072s
== 20170520110656 DeviseCreateUsers: migrated (0.0913s) =======================
ここまで順調に進めたら、ローカルでの立ち上がっているサーバーで挙動を確認したいもの。
順調に進めたら、
NoMethodError (undefined method `devise_for’ for #<ActionDispatch::Routing::Mapper:0x007fd85f354eb0>):
config/routes.rb:4:in `block in <top (required)>’
config/routes.rb:1:in `<top (required)>’
なんとここでエラー。
でもこの解決方法はなんともなくできます!
2.Config系のファイルを作ったり、いじったりしたら、とりあえずサーバーを再起動!
結論からお伝え致しますと、Railsにてdevise作成時、configファイル系が作成される為、必ずサーバーの再起動が必要です。じゃないと、NoMethodError (undefined method `devise_for’)のエラーメッセージに出会います。
手順通りに開発してきたのにも関わらずに、どこかしらでエラーに遭遇してしまう事が、誰しも開発してきた人なら経験してきたのではないでしょうか。私は、Railsで開発しはし始めは、とことん赤いあのエラー画面をみるたびにテンパっていました!
今でも少しはテンパりますが、ある程度のデバッグを教えて頂いてきたので、対応することができるようになりました。
詳しくは説明できませんが、config系のファイルはサーバーを立ち上げることで正常に作動することがあります。今回の私の件では、おそらく、最初のRails のgemのdeviseをインストールした時に、
$railsgeneratedevise:install
createconfig/initializers/devise.rb
createconfig/locales/devise.en.yml
上記二つのファイルが作成された為に、サーバーの再起動が必要でした。
そのまま、
$rails g devise user
$rake db:migrate を進めてしまった為、サーバーの再起動にも関わらずに、どんどん前に進んでしまいエラーに遭遇してしまいました。
3.その次は、$ rails generate devise:views
そのままついでに、Deviseの立ち上げ(初期設定)の進め方をお伝えします!
gem はdeviseだけではなく使う時に、そのgemの製作者や実装者が、そのgemを使いたい開発者の為に、簡単に実装できるようにREADME.md において説明してくれています。
https://github.com/plataformatec/devise
参考にしてみましょう!
さて次上記の、
$rails g devise user
$rake db:migrate
ここまで行ったら次は、
$rails g devise:views
$ rails generate devise:views
Running via Spring preloader in process 4082
Expected boolean default value for ‘–markerb’; got :erb (string)
invoke Devise::Generators::SharedViewsGenerator
create app/views/devise/shared
create app/views/devise/shared/_links.html.erb
invoke form_for
create app/views/devise/confirmations
create app/views/devise/confirmations/new.html.erb
create app/views/devise/passwords
create app/views/devise/passwords/edit.html.erb
create app/views/devise/passwords/new.html.erb
create app/views/devise/registrations
create app/views/devise/registrations/edit.html.erb
create app/views/devise/registrations/new.html.erb
create app/views/devise/sessions
create app/views/devise/sessions/new.html.erb
create app/views/devise/unlocks
create app/views/devise/unlocks/new.html.erb
invoke erb
create app/views/devise/mailer
create app/views/devise/mailer/confirmation_instructions.html.erb
create app/views/devise/mailer/email_changed.html.erb
create app/views/devise/mailer/password_change.html.erb
create app/views/devise/mailer/reset_password_instructions.html.erb
create app/views/devise/mailer/unlock_instructions.html.erb
このコマンドで一気に、ログイン画面のviewの基礎を作り上げることができます。
ちょっとのぞいてみましょう!
$rake routesコマンドで
$ rake routes
Prefix Verb URI Pattern Controller#Action
root GET / top#index
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PATCH /users/password(.:format) devise/passwords#update
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
user_registration POST /users(.:format) devise/registrations#create
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
PATCH /users(.:format) devise/registrations#update
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
/users/sign_upに着目します!
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
おなじみのデバイスのデフォルトの画面が出ましたね!!
(ここまでdevise以前の開発でサーバーを起動したまま開発していた場合、必ずサーバーを再起動しましょう !)
4.ログインしたかどうか、フラッシュメッセージを使いましょう!
*上記から進めていくとこの時点では 、まだ日本語ではないので、気にしないでください。
<section class=”main-header”>
<p class=”flash”><%= notice %><%= alert %></p>
</section>
viewファイルに関しましては、自分が開発したいようにコーディングしましょう。ここでは参考までにして頂けたら幸いです。
参考にしたリンク。
5.ログイン、ログアウトのリンクを作る
Deviseをインストールしたりして組み込むことで、Devise特有のメソッドが使えるようになります。その中で基本的なログインに関してのメソッド、”user_signed_in?“メソッドをしようします。これはメソッドで一つの決まりごとなので、そのまま覚えてしまいましょう!
app/views/layouts/application.html.erb
<header>
<ul>
<li><%= link_to “ホーム”, xxxs_path %></li>
<li><a href=”#”>USER</a></li>
<li><%= link_to ‘マイページ’, edit_user_registration_path %></li>
<% if user_signed_in? %>
<li><%= link_to ‘ログアウト’, destroy_user_session_path, method: :delete %></li>
<% else %>
<li><%= link_to ‘ログイン’, new_user_session_path %></li>
<li><%= link_to ‘サインアップ’, new_user_registration_path %></li>
<% end %>
</ul>
</header>
6.Deviseは優れもの!英語がデフォルトですが、日本語訳が簡単に作れる!!
Deviceはデフォルトでは英語になっています。エラーメッセージが英語訳なので、日本語訳に直すことが簡単にできます。無論、英語表記のままで言い方はこのままでもいいかも知りませんが。私は今後は英語圏のアプリを作るため、ここは省力していきます。
config/locales/devise.en.ymlを開いて見ましょう!
これらはデフォルトで英語訳になっていますが、これらを日本語訳に直すことができます。
config/application.rbを開けます。
このファイルの下部にある
# config.i18n.default_locale = :deを
config.i18n.default_locale = :ja
これで日本語化の設定がされます。
新規にconfig/locales/の配下にdevise.ja.ymlというファイルを作ります。
プロのエンジニアの先人たちが既に日本語訳を作ってくれています。ありがたい限りです。
for devise 4.2.0 · GitHub ここにアクセスします。
そのあとに作成しました、devise.ja.ymlを全てコピペします!
これを完成することで、先ほどのフラッシュメッセージなどは、日本語訳になります。
次に、バリデーションなどのモデルの属性を日本語訳にしていきます。
エンジニアの先人たちに甘えましょう!!
先ほど同じように新規にconfig/locales/の配下にmodel.ja.ymlを作成して、
rails-i18n/ja.yml at master · svenfuchs/rails-i18n · GitHubの中身をコピーして、model.ja.ymlに貼り付けます。
7.一度動作確認を!サーバーの再起動を忘れずに!
ここまで無事編集できたら、一度動作確認をして見ましょう!
タイトルにもあるように、configファイル系が作成される為、必ずサーバーの再起動をしないと、編集したものが反映しないです。
この作業をつい忘れてしまうと、どこがいけないかを探す羽目になってしまいますので、無駄な時間が生まれてしまいます。ぜひサーバーの再起動を忘れずに!
8.ログインしないとアクションできない様にする。
よく色々なサイトで、ログインしないとその先が行けなかったりするのを見かけると思います。記事を読んでいて、”この先はログインすれば読めますよ!”みたいなメッセージを出して先に進めなかったりしたり、 記事の投稿はログインしてからしてください。という様なサイトを見かけると思います。
これはRailsだと、authenticate_user!というメソッドを使っています。ですので、
アクションコントロールに定義をします!
class ChopsController < ApplicationController
before_action :authenticate_user!
before_action :set_chop, only:[:edit, :update, :destroy]
このメソッドで
True(ログインしている)→そのアクションへ。
False(ログインできなかった、ログインしない)→再びログイン画面へ。
という流れになります。
Deviseはログインしたりするユーザー管理のためのGemなので、Userモデルにいずれnameカラムが必要になります!
$ rails g migration AddNameToUsers name:string
そしてRailsでおなじみにのマイグレート!
$ rake db:migrate
nameカラムまで作ったのなら、ついでにDeviseのストロングパラメーターも編集しましょう!!
Deviseは便利で、セキュリティー面も断トツに優れていますが、ただちゃんと編集していかないと、うまく機能しません。
Deviseには”configure_permitted_parameters”という独自のストロングパラメーターを設定できるメソッドがあり、”:devise_controller?”を追記して、Deviseのコントローラーのみで起動させます。
app/controllers/application_controller.rb を編集します。
最後に下部に、
protectedを記載し、違う場所からのメソッドの呼び出しを防ぐことができます!
9.Deviseの使い方は、グーグル先生にきく
Deviseでなくともログイン機能は作れますが、やはりログイン機能はデバイスが一番いい。Deviseの情報は先人たちが既に色々な角度でトライしています。
もしDeviseで困ったら、”rails devise”,”devise rails views”などといったように、自分が調べたいように検索してしましょう。 英語圏は情報は分母が違うため、よりいっぱい溢れていますよ。
10.プログラミングで可能性を広げる
時間を見つけBoracay島に行って来ました。この間でもブログの更新やプログラミングスクールを卒業するためにの課題制作など、インターネットがあればできることをやっていました。
この時は4連休したのですが、それでも海外に行くことができます。私の基盤はまだまだサラーリマンとしてが強く、恥ずかしいのですが完璧にはエンジニアになれていないですが、連休をみつけ海外に行けるのも、エンジニアのいいところでしょう。
boracay島に行く時に撮影しました。国内線は往復で一万円もしません。ですので、セブパシフィックでキャンペーン中はマニラまで片道で訳1万3千円ほどで、交通費3万ぐらいで楽しめます!
最近フィリピンへのアクセスは安くなり、とても容易になりました。プロのブロガーやエンジニアもリモートなどで作業されている方も、最近知り合いになりました。
とあるRailsエンジニアは日本の冬の寒い時期だけを約5ヶ月フィリピンで過ごし、他はオーストラリアや日本で過ごされて、リモートで仕事されている人もいました。
フィリピンは日本が受ける収入にとって、とても物価が安いです。その先輩Railsエンジニアは約5ヶ月をフィリピンで過ごされ、貯金と収入もうまくいっているとのこと。投資に関してはここでは割愛させて頂きますが、日本と変わらずの収入で出費を抑えて生活できるのも、海外でリモートする特権だと思います。これも一つの自分に対しての投資ですよね。
働き方は色々ある。会社員として空いている時間を使って、自分への投資をしてもいいと思う。私は会社の休憩時間中は、ひたすら情報を収集したりあるいは、寝てるふりをしてマインドフルネスを実行している。マインドフルネスを3分でもやって一度頭の中を整理したりすると、仕事終わりに家でリフレッシュした状態で作業に入れる。
また空いている時間を利用して、起業をする準備だっていいと思う。
この本は何度も紹介してきましたが、本当にこんなやり方でもいいと思うし、これをやることで、うちに秘めているリスクの一つを回避することができます。
今後もRailsやフィリピンについての情報を少しでも発信していきたいと思います。
11.記事を読んでくれる人に感謝です。
最近記事を読んでくれる人が多くなり、本当に嬉しい限りです。
これからも精進して参りますので、ぜひ応援して頂けら幸いです!!
時たま頂けるあたたかいメッセージがとても嬉しいです。
もしよかったら過去の記事を読んで頂けたら幸いです。
Railsで新規プロジェクトを始める時に、前回までのファイルとシステムとが干渉しないようにする方法 【永久保存版】
グーグルアドセンス広告が表示されない?違反は無いみたいだけど、広告が出ない場合の対処の仕方 – 4児パパ プログラミングを学ぶ
フィリピンでsimフリーを利用して、日本から持ってきた携帯を使おう!空港でsimフリーはタダで配られている!!!
ブログアクセスアップ10%目指そう!はてなブログのカスタムURLは簡単!
Webエンジニア1人とライター1人いれば、ビジネスが成り立つ!!
マインドフルネス(瞑想)をしよう。3分で脳疲労を解消!脳疲労をとることで仕事に活気と生活に安定を♪
プログラミングを始めたら、はてなブログを有効に使おう!プログラマーになり始めたらブログでアウトプットできる!
</p
”フィリピン”で”iPhone”を”充電する”!!日本と電圧は違うが怖くない!
コメントを残す