LoginSignup
0
0

More than 5 years have passed since last update.

Rails備忘録

Last updated at Posted at 2017-10-13

メモがわり。そのうちまとめるかも

thinでサーバ起動

rbenv exec thin start

ローカルにgemインストール

Gemfileを書き換えて

rbenv exec bundle install

Model

scaffold

rails g scaffold モデル名 カラム名1:データ型1 カラム名2:データ型

対応するデータ型

シンボル 説明 対応するMySQLの型
:string 文字列 varchar(255)
:text 長い文字列 text
:integer 整数 int(11)
:float 浮動小数 float
:decimal 厳密な精度の少数 decimal
:datetime 日時 datetime
:timestamp より細かい日時 datetime
:time 時間 time
:date 日付 date
:binary バイナリデータ blob
:boolean 真偽型 tinyint(1)

application.rbを書き換えてもscaffoldに反映されない

spring stop

DB変更migrationファイル作成

rails g migration ***ChangeSomething***

add_column

add_column :table_name, :column_name, :data_type, null: true

DBつくりなおし

rake db:migrate:reset

varcharの文字数指定、null指定、コメント指定、デフォルト値設定

ruby

t.string :name, :limit => 300, null: false, comment:"はぴはぴするにぃ", default: 0

インデックスをつける

ruby
t.string :name, index: true

ユニークキーをつける

単一フィールド

ruby
add_index :target_table, :name, unique: true, name: 'index_name'

複数フィールド

ruby
add_index :target_table, [:name, :date], unique: true, name: 'index_name'

cron

gem 'whenever'

wheneverを使う

bundle exec wheneverize .

View

jsの読み込み

slim
= javascript_include_tag 'target.js'

slim

テンプレートエンジンのデフォルトをslimに変更

application.rb
  class Application < Rails::Application
    config.generators.template_engine = :slim 
  end

erbをslimに置き換え

for file in app/views/**/*.erb; do rbenv exec erb2slim $file ${file%erb}slim && rm $file; done

テンプレートの出力結果を文字列として変数に格納(Model内で)

「TargetController」は該当のコントローラ。
localはviewで使う変数

ruby

renderer = ApplicationController.renderer.new TargetController.renderer.defaults
p renderer.render template: 'path/to', locals: { }

デバッグ

pry

Viewの途中でbreak(slim)

- binding.pry

ログ

tail -f log/development.log

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