「教師用Railsアプリ」② Gemfile編集~
前回:プロジェクト「lessonplan」を作成
rails, jQuery Bootstrapをインストール まで
1)(今の時点で)使いたいgemをインストールする
デバッグのためのもの、画像アップロードまわりのもの、
PDF化するためのものを中心に、Gemfileに記述。
Gemfile
gem 'pry-rails' #binding.pryを使うため
gem 'better_errors' #エラー画面を便利にする
gem 'binding_of_caller' #better_errorsと合わせてREPL(対話型評価環境)を構築する
gem 'bcrypt', '3.1.11' #has_secure_passwordメソッドを使うため
gem 'carrierwave' #画像アップロード
gem 'mini_magick' #画像サイズ調整
gem 'pdfkit' # wkhtmtopdfのラッパー
gem 'wkhtmltopdf' # HTMLをPDFに変換するツール
$ bundle install
※cloud9ではbetter_errors設定が必要なので、それも設定。
config/environments/development.rb
Rails.application.configure do
(省略)
BetterErrors::Middleware.allow_ip! "0.0.0.0/0"
end
これみたいな、もうすでにいっぱい書いてある中に追記するような時は、
どのあたりに書けばいいか、いつも迷うけど、
とりあえず、今回はendの中に入っていればいいと考えて、一番上に追記してみた。
2)コントローラー・モデル・ビューを作成
授業案を作成・保存するアプリなので、名前は以下のように設定。
コントローラー名 plans
モデル名 Plan
$ rails g controller plans
$ rails g model plan
ルーティングを設定
config/routes.rb
Rails.application.routes.draw do
resources :plans
end
コントローラーは
ひとまず、indexアクションだけ定義しておく。
app/controllers/plans_contoroller
class PlansController < ApplicationController
def index
end
end
viewsのplans配下にnew fileを作成して、indexだけ暫定的に作成。
app/views/index.html.erb
<h2>hello</h2>
マイグレーションも忘れずに
$ rails db:migrate
サーバーを立ち上げて、確認。
$ rails s -b $IP -p $PORT
⇒ ちゃんと、indexのviewは呼び出せている。
3)gem 'devise'でログイン機能を実装する準備
Gemfile
gem 'devise'
$ bundle install
$ rails generate devise:install
Running via Spring preloader in process 20488
create config/initializers/devise.rb
create config/locales/devise.en.yml
==================================================================
Some setup you must do manually if you haven't yet:
(省略)
しばらく触ってなかったので、postgresqlを起動させて
$ sudo service postgresql start
* Starting PostgreSQL 9.3 database server
...done.
DBを作成
$ rails db:create
Created database 'lessonplan_development'
Created database 'lessonplan_test'
Userモデルを作成
$ rails generate devise user
Running via Spring preloader in process 21837
invoke active_record
create db/migrate/20180801110545_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
マイグレーションも忘れずに
$ rails db:migrate
== 20180801110545 DeviseCreateUsers: migrating ================================
-- create_table(:users)
-> 0.0262s
-- add_index(:users, :email, {:unique=>true})
-> 0.0121s
-- add_index(:users, :reset_password_token, {:unique=>true})
-> 0.0073s
== 20180801110545 DeviseCreateUsers: migrated (0.0460s) =======================
今日はここまで。
また明日、続きをやります。