-Railsについて学んでみる。

#contents

*参考サイト [#h65dfbc9]

http://openbook4.me/projects/92

*インストール [#g613fd02]

**Linux [#wd41c40d]

2015年時点でRails4をインストールする場合、CentOS7ですら依存バージョンが古かったりでインストールが大変である。

**Mac [#f545f329]

-rbenvでruby最新安定版を入れる

 brew update
 brew install rbenv ruby-build
 echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
 rbenv install -l
 rbenv install 2.3.4
 rbenv rehash
 rbenv global 2.3.4

-MYSQL使うならMySQLを入れておく
 brew install mysql
 gem install mysql2

-rails

 gem install rails
 gem install bundler

-サンプルアプリ生成

 railas new sample
 
-mysqlで接続するにはもっとライブラリが必要

 brew install mysql

*DB Model [#c33bf9f2]

**条件 [#l9daa2ef]

 #配列を渡せばIN検索
 Model.find(idArray)
 Model.where " age > ?", param1
 Model.where age: param1

**ソート [#mf33179f]

 Model.where("name like ?",param1).order 'age asc'

**検索結果 [#ka583418]
 result = Model.where age: param1
 result.first 
 result.last

*アソシエーション [#e04ce7ed]

主テーブルにhas_many or has_one,従属テーブルにbelongs_toをつける!

*DB migration [#we6c6a54]

 rake db:create (以後はdb:migrate)
 rails g scaffold account name:string password:string category_id:integer memo:string

**Windows [#v6d06426]


*基本 [#m6b55e4f]

*コマンド [#h1b8d05c]


|mynewappというアプリケーションを作る|rails new mynewapp||
|usersコントローラーのindexとshow/updateのviewを作成|rails g controller users index show update||
|ルーティングの確認|rails routes||
|modelを作成|rails g model book isbn:string title:string price:integer publish:string publised:date dl:boolean|db/migrate/以下のファイルが生成物|
|model作成後にDB作成|rake db:create|
|model booksにダミーデータ10件作成|rails db:fixtures:load FIXTURES=books|
|DB接続|rails console|各DBクライアントのラッパー|

**コマンド補完 [#q4b85e16]

 brew install bash-completion

-.bash_profileに下記を追記

 if [ -f $(brew --prefix)/etc/bash_completion ]; then
  . $(brew --prefix)/etc/bash_completion
 fi

-/usr/local/etc/bash_completion.d/にrails補完用ファイルを配置
*View [#l4021bd5]

-このように定義して

 @user = Hash.new
 @user[:name] = 'taro'

-こんな感じで出す!

 <h1><%= @user[:name] %></h1>

*メッセージ [#rc1e255a]

-国際化のためにメッセージファイルを別に持っておく。flashはcakephpと同じで軽いエラーメッセージを出す場合に使う。

 flash[:error] = message('dashboard.project_not_found')

*DBマイグレーション [#n8c2ec67]

**既存DBから定義を作成 [#n6669854]

https://www20.atwiki.jp/katow30it/pages/12.html

*アソシエーション [#za613467]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS