<<前 [TOP] 次>>
まずはサンプルのアプリケーションを作成してみます。
コマンドプロンプトで作業フォルダ「C:\Rails6\work」に移動し、「rails new sample -d mysql
」と入力します。
「-d」オプションを指定することで使用するデータベースを選択できます。
「Webpacker successfully installed」とでたら成功です。
コマンドプロンプトで作業フォルダ「work」に作成された「sample」フォルダに移動し、「dir」コマンドで中身を見てみましょう。
全部で12個のファイルと14個のディレクトリが出来ているのを確認できます。
コマンドプロンプトで「bin」フォルダに移動し、「rails about
」と入力してみましょう。
Ruby、RubyGems、Rails、Railsののバージョン、Railsアプリケーションのフォルダ名、現在のRailsの環境名とデータベースアダプター、スキーマのバージョンが表示されます。
Railsのバージョンは「6.0.1」をインストールしたはずなのですが、なぜか「6.0.2.2」とバージョンが上がっています。
どのタイミングでアップデートされたのか謎ですが、問題なさそうなのでこのまま進めていきます。
次にサンプル用のデータベースを作成します。
今回はサンプルのアプリケーションなので開発用データベース「sample_development」のみを作成します。
詳しくは実際にアプリケーションを開発していく段階で説明します。
コマンドプロンプトで「sample」フォルダに入って「mysql -u root -p
」と入力します。
そうするとMySQLのインストール時に入力したルート(root)パスワードを聞いてきますので入力して下さい。
これでMySQLにログイン出来ます。
データベースの作成には「create database」を使用します。
例えば「create database sample_development;」とすると、「sample_development」データベースがMySQLに作成されます。
最後のセミコロン(;)を忘れないようにして下さい。
同時に「default character set utf8」として日本語文字コードの指定を行います。
このようにデータベース作成時に文字コードを指定しないと文字化けが起こります。
以下のコマンドで「sample_development」データベースを作成します。
「create database sample_development default character set utf8;
」
ユーザを作成します。
ユーザの作成には「create user」コマンドを使います。
「create user rails@'localhost' identified by 'rails';
」
ここで「localhost」の部分を「%」にすると、別のネットワークPCからのデータベースアクセスが可能になります。
「identified by」ではパスワードを設定できます。
例えば「create user rails@'localhost' identified by 'administrator';
」とするとユーザ名が「rails」、パスワードが「administrator」で「localhost」からのアクセス権限を与えています。
では「create user rails@'localhost' identified by 'rails';
」と入力して「rails」ユーザーを作成してみます。
ユーザ名が「rails」、パスワードも「rails」となります。
データベースにユーザ権限を与えます。
権限を与えるには「grant all」を使用します。
例えば「grant all on sample_development.* to 'rails'@'localhost';」としたら、ユーザ名がrails、ホストがlocalhostでアクセスしてきたものにすべての権限を与えるという意味になります。
ここでlocalhostの部分を「%」にすると、別のネットワークPCからのデータベースアクセスが可能になります。
今回は1台のPCのみで開発することを想定して「localhost」とします。
以下のコマンドを実行します。
「grant all on sample_development.* to 'rails'@'localhost';
」
「exit;」と入力してMySQLを抜けます。
Railsとデータベースを接続するためには、データベースの権限を設定した情報をRailsに知らせる必要があります。
データベースの接続情報は「sample」フォルダの「config」フォルダにある「database.yml」に記述します。
デフォルトの「database.yml」ファイルは以下のようになっています(コメント以外を抜粋)。
【sample/config/database.yml】
default: &default adapter: mysql2 encoding: utf8mb4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: host: localhost development: <<: *default database: sample_development test: <<: *default database: sample_test production: <<: *default database: sample_production username: sample password: <%= ENV['SAMPLE_DATABASE_PASSWORD'] %>
大きく「開発」「テスト」「本番」の3つに分かれています。
それぞれの項目について説明します。
これを以下のように書き換えます。
「default」の「username」を「rails」、「 password」も「rails」にしています。
default: &default adapter: mysql2 encoding: utf8mb4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: rails password: rails host: localhost development: <<: *default database: sample_development test: <<: *default database: sample_test production: <<: *default database: sample_production username: sample password: <%= ENV['SAMPLE_DATABASE_PASSWORD'] %>
ではWebサーバ「Puma」を起動します。
Pumaを起動するにはコマンドプロンプトで「bin」フォルダに移動し、「rails server
」と入力します。
ブラウザのアドレスバーに「http://localhost:3000/」と入力してください。
下のような画像が表示されれば成功です。
↓↓クリックして頂けると励みになります。