Help us understand the problem. What is going on with this article?

Ruby on Rails

More than 1 year has passed since last update.

【資料】

参考サイト
https://nishinatoshiharu.com/about-bundler/

Railsオプション
参考資料http://railsdoc.com/rails

【Railsコマンド】

・プロジェクトの立ち上げ
->ローカル環境のgemを利用する
rails new プロジェクト名

->bundlerで管理されたgemを利用する
bundle exec rails new プロジェクト名

railsのアップデート
Gemfileにアップデートしたいバージョンを書き込む
bundle update rails

参考サイト
https://qiita.com/pugiemonn/items/e237b73025d8db8545bf
DBの作成
rake db:create

DBのマグレーション
rake db:migrate

Seed
rake db:seed
image.png

テスト環境にseedしたい
DBの削除
rake db:drop

drop,migrate,seedを実行
rake db:reset

controllerの作成
rails g controller コントローラー名

コンソールを開く
rails console

migrationしちゃったけど、modelだけほしい

オプション--skip-migration

rakeとは何か
->rake Task
rake db:resetとrake db:migrate resetは違う
https://easyramble.com/difference-bettween-rake-db-migrate-reset.html

【便利なやつ】

[has_many: through]

has_many :teams, through: :team_members

通るとこもsつけないとえらーになるよ

has_many :team_members
has_many :teams, through: :team_members

【gem】

Rspec 実行
https://qiita.com/tocomi/items/2dba0de52eefdcf33fd7

  • shoulda-matchers

公式:http://matchers.shoulda.io/
参考:https://qiita.com/tacumai/items/4bc60e7f89953c046949

備考:下のような状態でrubocopで--auto-correctを実行すると、

test_spec.rb
require "rails_helper"
RSpec.describe Test, type: :model do
  it { expect have_many(:users).through(:results) }
end
RSpec/VoidExpect: Do not use expect() without .to or .not_to. 
Chain the methods or remove it.

と言われるので、

test_spec.rb
require "rails_helper"
RSpec.describe Test, type: :model do
  it { have_many(:users).through(:results) }
end

このように修正しました。

-simplecov

参考:https://qiita.com/komatsubara/items/02962feb28a9eb7e9123

-rubocop

参考:https://blog-ja.sideci.com/entry/2015/03/12/160441

- onkcop

Guthub:https://github.com/onk/onkcop

【エラー】

参考:http://blog.yuhiisk.com/archive/2018/04/24/rails-error-collection.html

NoMethodError: Cannot load Rails.application.database_configuration
Step #3: ERROR: (gcloud.app.deploy) Error Response: [9] 
Step #3: Application startup error:
Step #3: bundler: failed to load command: rackup (/usr/local/bundle/bin/rackup)
Step #3: NoMethodError: Cannot load `Rails.application.database_configuration`:
Step #3: undefined method `[]' for nil:NilClass

結論:95%の確率で、database.ymlに問題がある。
または、それに付随する環境変数。

【rubocop】

最高
・has-many dependent オプション
https://qiita.com/keisuke-mizoguchi/items/afc1a332c3108975a9b6

・Use the new Ruby 1.9 hash syntax.
->http://hico-horiuchi.hateblo.jp/entry/20131205/1386173426

・:inverse_ofについて
https://sil.hatenablog.com/entry/rubocop-rails-inverse-of


・describe
rubocop参考:https://www.rubydoc.info/gems/rubocop-rspec/1.1.0/RuboCop/Cop/RSpec/DescribeClass

https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Rails/BulkChangeTable

・Abc Metric
http://hikitest.hatenablog.com/entry/2015/01/14/034346

・rubocop部分的に無視する。rubocop.yml
https://qiita.com/QUANON/items/65a420e35af455aad74c
https://qiita.com/necojackarc/items/8bc16092bbc69f17a16d

AbcSize:
 Exclude:
  -'spec/test.rb'

Metrics/ClassLength:
 Exclude:
  -'spec/test.rb'

こんな感じで書くべし、

もうちょい詳しく学ぶ必要あるかも

rubocop.ymlのexcludの設定は、インデントでおかしくなるので注意

frozenliteral
https://blog.toshimaru.net/ruby-immutable-string/

whitespace 空白、余白

はまったとこ

vue-apolloを使うときに
ApplicationControllerをActionContoroller::APIに変更するところで、はまった
APIについてもっと詳しくならねば、
参考:https://railsguides.jp/api_app.html

Class_Name オプションとinverse ofの併用
stackoverflow最高
参考:https://stackoverflow.com/questions/15429122/rails-inverse-of-error

Bundle config

http://ruby.studio-kingdom.com/bundler/bundle_config/

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away