LoginSignup
0
0

More than 3 years have passed since last update.

Rails自分用メモ

Last updated at Posted at 2018-10-18

編集中

memo

  • モデル名.find_by ID以外のカラムで検索 一件取得
  • ルーティング一覧 http://localhost:3000/rails/info/routes
  • where 配列が取得できる
  • belongs_to :hoge(〜〜〜.idこの場合はhoge_idのカラム) ,class_name: 'User'(モデル名)
  • new_record?はDBにレコードが登録されて「いなければ」true 登録されていればfalseになります。
  • inspectメソッドとは、オブジェクトや配列などをわかりやすく文字列で返してくれるメソッド
  • コールバック一覧
  • Post.first 最初のデータを取得
  • i18n
  • Rails: nil?, empty?, blank?, present?の挙動
  • railsはビューではなくアクションで変数を定義するのが一般的
  • Railsでは、「views/layouts/application.html.erb」に共通のHTMLを書いておくことができる

ActiveRecord

  • ActiveRecordとは
    •  Ruby on RailsのORマッパー
    •  ActiveRecordを継承するクラスはDB名の大文字、単数形に変える
      例:serviceplans → ServicePlan
    •   ActiveRecord入門

has_many
所有する
ownerがcatlesを所有する場合は
app/models/owner.rbに以下のように記載する
has_many :castles

belongs_to
所有されている
catlesがownerに所有されている場合は
app/models/owner.rbに以下のように記載する
belongs_to :owner

class Hoge < ActiveRecord::Base
  has_many :sample_dbs
end

class Hoge < ActiveRecord::Base
  belongs_to :sample_dbs
end

dbフォルダ配下のseeds.rb(rubyで)でデータベースを作る
rails db:seed

マイグレーション機能
SQLを書くことなくRubyでデータベース内にテーブルを作成することができる機能
SQLを書く必要がない理由は、Ruby on Rails内のActiveRecordという機能が
RubyをSQLに自動翻訳することができるためです。

seeds.rb
テーブルにデータを登録する仕組み

jbuilder
views以下にxxx.json.jbuilderファイルを作ってlocalhost:3000/items.jsonにアクセスすればjson形式のレスポンスが返ってくれます
http://www.cl9.info/entry/2015/03/07/103121

rails db:migrate
Rails 5以前のバージョンでは、db:migrateコマンドはrailsコマンドではなくrakeコマンドが使われていました

・Jobとは
 メールの送信、データのインポート/エクスポートなどの時間のかかる処理を、
 適した方 法でバックエンドで行うためのコンセプト

・Delayed Jobとは
 非同期処理を行うためのgem 他にResque Sidkiqなどがある
 https://ruby-rails.hatenadiary.com/entry/20150304/1425396671
Railsでの非同期処理とDelayed Job

・Active Jobとは
 色々ある非同期ライブラリに対して同じインターフェースを提供するライブラリです。

用語 説明 備考
rails s WEBrickの起動
pluck 指定したカラムの配列を取得する mapに比べて早い
db/schema.rb 現在のDB(スキーマ)一覧がある
rake db:migrate テーブル作成
rake db:seed データを投入
rails c コンソール起動 rails c --sandbox
DBを変更したくない場合はこれを使う
delayed_job バックグラウンドで非同期処理をしてくれるrailsのgemの一種
delay enqueueの2種類がある
Class.delay.method(hoge)
methodが呼ばれると、次に行われる処理がデータベース内のdelayed_jobsテーブルに格納される
キューに入れる、enqueueすると表現するらしい
DBのルール 外部キーはxxx_idという表記になる

参照リンク

入門
Ruby on Rails チュートリアル:実例を使って Rails を学ぼう
Ruby on Rails入門
小学生でもわかるRuby on Rails入門 | OpenBook

ブログ
Rails Webook


その他
Ruby on RailsのAjax処理のおさらい

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