LoginSignup
2
1

More than 5 years have passed since last update.

Railsアプリ作成の最初の準備(cloud9)②Gemfile編集~

Last updated at Posted at 2018-08-01

「教師用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) =======================

今日はここまで。
また明日、続きをやります。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1