LoginSignup
2
2

More than 5 years have passed since last update.

vscodeでRails の開発環境構築

Last updated at Posted at 2018-12-17

ご指摘くだされ

VsCode

Windows、Linux、macOS上で動作するコードエディタである
Visual Studio Codeのページ

mkdir ディレクトリ名

railsの作業ディレクトリ作成
(スペースを開けるならば半角スペース。全角ではエラー)

ターミナル.
    $ mkdir TestApp
    $ cd TestApp
    #実行後
    C:\Users\ユーザー名\TestApp>

bundle exec rails new kuzunoApp -B

railsのプロジェクトを作成する

ターミナル.
    $ bundle init
Gemfile.
    # gem "rails"
        ↓
    gem "rails"
ターミナル.
    $ bundle exec rails new ??? -B 

[補].(どっと)の場合cdで階層を移動する必要はない

???の部分を.(ドット)にすると現在のディレクトリにRailsプロジェクトが生成されます。(この場合はcdの必要なし。
インストール実行時にターミナルの中で「Gemfileを上書きしていいか?」と聞かれますが、yで続行します)

Overwrite /Users/なまえ/ディレクトリ名/Gemfile? (enter "h" for help) [Ynaqdhm] 

 [補]Bundlerのインストール

ターミナル.
    $ gem install bundler

【エラー】Could not find gem 'mysql2 (< 0.6.0, >= 0.4.4) x86-mingw32' in any of the gem sources listed in your Gemfile.

mysqlをインストールする

macの場合.
    $ brew install mysql

windowsの場合

bundle install

初回はパスを指定

    $ bundle install --path vendor/bundle

これで、railsのコマンド(rails new)を利用することが出来るようになります
この時「Gemfile.lock」というファイルができ、これには、インストールしたgemの名前とバージョンが記載されてます
gemを加えたい時は、「Gemfile」に記述してもう一度bundle installをします

[補]--path vendor/bundle

一度パス指定をするとその旨がファイルに記述されて次からは、そこに指定されたパスにインストールされるようになる
.bundleディレクトリ内のconfigファイルに設定が追記される

bundle/config.
BUNDLE_PATH: "vendor/bundle"

システムのgemをできるだけクリーンに保つため作業フォルダ内のvendor/bundleに格納する

【エラー】An error occurred while installing mysql2 (0.5.2), and Bundler cannot continue

対処法

根本を直さなきゃいけないんだろけれども毎回参考にしています(自分の環境ではsudoをつけてもエラーが出ます)

mysql2がインストールできない問題

RailsプロジェクトでMySQLがbundle installできなかった

ターミナル.
bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include"

コマンドのみ解決

[補]rails new

???を「.」にすると現在のフォルダ、「todo」や「name」等の名前を付けると今の階層からひとつ下にフォルダが作られる

ターミナル.
    $ bundle exec rails new ??? -B 

--skip-bundleオプションをつけないと、rails newコマンド実行時に、グローバルな場所に、関連gemがインストールされる

    -d mysql   

mysqlにデータベースを変更(railsのデフォルトのDBはsqlite3)

    ーB, --skip-bundle

システムにbundle installを行わないようにする

config/database

passwordを設定

今作ったフォルダの中にある
config/database.ymlの17行目にデーターベースの(Mysqlとかの)パスワードを入れる(エラーが出るようなら空白のままで良い)

config/database.yml
    password: ぱすわーど
    #(半角スペース空けないとエラー) 

【エラー】Access denied for user 'root'@'localhost' (using password: YES)

Created database 'にゃまえ_development'
Created database 'にゃまえ_test'

上のような二行ではなく(using password: YES)と出たら先のdatabase.ymlで設定したpasswordをまっさらに戻して保存してもう一度createすれば通るはず

database.yml
  password: (消す)

rails db:create

[補]gemがない

bundle install --path vendor/bundle

データベースを作成します。rails == rakeらしいです

    $ rails db:create

これでbundle exec rails sをするとブラウザでYay! You’re on Rails!と表示されるはずです!!!

rails g model

    $ rails g model モデル名 フィールド:型 
    $ rails g model User name:string 

「モデル名」の一文字目は大文字で単数形として書く

/db/migrate.
    t.string :name #コマンドで作成した時に作ったもの
    t.integer :age #同じ書き方でここに書き込める

rails db:migrate

モデルの変更を確定するため

   $ rails db:migrate

[補]Mysql2::Error: Table 'テーブル名' already exists

mysqlを直接編集する方法が載っています
Mysql2::Error: Table 'テーブル名' already existsと表示されてしまった時の対処法

[補]bundle exec rails db:rollback

モデルの変更を戻す

    # 一つ前のテーブルをmaigrate前に戻す
    $ bundle exec rails db:rollback
    # 複数のテーブルを戻す
    $ bundle exec rails db:rollback STEP=数

リファレンス rake db:rollback

bundle exec rails g controller

コントローラーとビューを作成
「コントローラー名」は複数形で、頭文字は大文字(例:User, Post, Monster)
newアクションを持つUsersコントローラーを作るときは次のように入力します

ターミナル.
    一例
    $ rails g controller Users new

この場合は下記の二つは自動で記述される

users.controller.rb

    def new
    end
route.rb
    get 'users/new'

bundle exec rails s

ブラウザを起動する

ターミナル.
    $ bundle exec rails s
route.rb
    get "/" => "users#new"

とすると「localhost:3000」で自動生成のuserコントローラーのnewアクションでページが表示される

【エラー】A server is already running.

このエラーが出た場合は/tmp/pids/server.pid.ファイルを消す
手動もしくは下記コマンド

ターミナル.
    $ rm tmp/pids/server.pid

.gitignore

git pushコマンドを打つ前に
.gitignoreの中で

gitignore.
    vendor/bundle

と追加するとgit pushの時間が短くなる

参考にさせていただきました

新規Railsプロジェクトの作成手順まとめ

Railsのプロジェクトを新規作成する手順

thank you にゃー

 なんどもなんども更新を続けています

うまくいかない場合や、おかしい記述があったら教えてください

2
2
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
2