メモがわり。そのうちまとめるかも
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