Skip to content
shoken fujisaki edited this page Aug 31, 2015 · 7 revisions

勉強会で出た質問

Table of Contents

Q. rails g resourcerails g scaffoldの違いは?

A. 作成されるファイルの種類が違います。scaffoldの方が多いです。

rails g resource xxx

sfmba13:awesome_events2 fujisaki$ rails g resource event owner_id:integer name:string place:string start_time:datetime end_time:datetime content:text
      invoke  active_record
      create    db/migrate/20150826050046_create_events.rb
      create    app/models/event.rb
      invoke  controller
      create    app/controllers/events_controller.rb
      invoke    erb
      create      app/views/events
      invoke    helper
      create      app/helpers/events_helper.rb
      invoke    assets
      invoke      coffee
      create        app/assets/javascripts/events.js.coffee
      invoke      scss
      create        app/assets/stylesheets/events.css.scss
      invoke  resource_route
       route    resources :events

rails g scaffold xxx

sfmba13:awesome_events2 fujisaki$ rails g scaffold hoge name:string
      invoke  active_record
      create    db/migrate/20150826050143_create_hoges.rb
      create    app/models/hoge.rb
      invoke  resource_route
       route    resources :hoges
      invoke  scaffold_controller
      create    app/controllers/hoges_controller.rb
      invoke    erb
      create      app/views/hoges
      create      app/views/hoges/index.html.erb
      create      app/views/hoges/edit.html.erb
      create      app/views/hoges/show.html.erb
      create      app/views/hoges/new.html.erb
      create      app/views/hoges/_form.html.erb
      invoke    helper
      create      app/helpers/hoges_helper.rb
      invoke    jbuilder
      create      app/views/hoges/index.json.jbuilder
      create      app/views/hoges/show.json.jbuilder
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/hoges.js.coffee
      invoke    scss
      create      app/assets/stylesheets/hoges.css.scss
      invoke  scss
      create    app/assets/stylesheets/scaffolds.css.scss

Q. left joinとright joinの違いは?

A. 表の結合したときに指定された左右いずれかの表を優先して表示を行う指定である。

SQL講座 LEFT JOIN とRIGHT JOIN(表の外部結合)

Q. inner joinとouter joinの違いは?

A.

  • 内部結合では左右それぞれのテーブルの指定したカラムの値が一致するレコードだけを取得します。
  • 外部結合は左右それぞれのテーブルの指定したカラムの値が一致するレコードに加えてどちらかのテーブルにしか存在しないデータについても取得します
INNER JOINとOUTER JOIN - 紳士なブログ

Q. rake db:createと db:migrateの違いは?

A.

  • db:create => config/database.ymlからdabtabaseを作成する
  • db:migrate => db/にあるmigrateファイルからデータを作成する
ただし、動きを見るとdb:migrateでもdatabaseを作成しているっぽい。

Q. ./bin/railsrailsの違いは?

A. railsコマンドの探索経路が違う

  • ./bin/rails => カレントディレクトリにあるbinディレクトリ内のrailsを実行する
  • rails => $PATHに格納されているディレクトリ内部を順番に探索し、最初に見つかったrailsコマンドを実行する

Q. $PATHとは?

A. コマンドを探索するディレクトリを定義している環境変数。

$PATHの確認方法

echo $PATH

Q. bundlebundle installは同じですか?

A. 同じです。bundleコマンドは引数無しで実行するとbundle installを実行します。

Q. group :development, :test doとは?

A. bundleにはgroupごとにgemをインストールできる機能があります。例えば本番環境でbundle install --without test developmentとすると、group :development, :testはインストールされない。本番環境に必要無いgemを入れないでよくなる。