R概要
■Ruby
・標準クラス・モジュール
http://ref.xaio.jp/ruby/classes
・逆引きRuby
http://www.namaraii.com/rubytips/
■Rails
・パラメーターの引き渡し
①view → controller
前提:httpリクエスト・レスポンスのパラメータは全て文字列
それをrailsがhashとか配列にして扱いやすくしてくれる。
・クエリ形式でのパラメータ(パラメータをcontroller側でparamsで受け取れる)
└文字列
└変数
└ハッシュ
└配列
・POSTを使って送信されたパラメータの取得
(パラメータをcontroller側でparamsをつかって受け取れる)
※postは基本的にボタン押した際の更新とか登録時に使用。
getで更新ももちろんできるが、セキュリティ的に普通やらないです。
特に個人情報とかはssl使ってpostしないとパラメータの中身見られるのでまずい。
└文字列
└変数
└ハッシュ
└配列
・クッキー/セッション
※ショッピングサイトで言うと、ログイン情報、買い物カゴ、閲覧履歴がクッキー
DBに持つ必要は無いけど保持しておきたい情報で、ケースは限られる。
②view ← controller
・基本@変数で概ね画面に値を返す際に使用
@ありと@なしは別の変数になり、@あればviewで使えるが@がないと使えない。
文字列、変数、ハッシュ、配列となんでも渡せる。
例えば、
@user = User.find **とすると、viewで@user.nameとかで表示できる。
@num = 1 でも@day = Date.today でもいける。
※基本的に処理結果とかを入れる。
・複数のレコードからデータ取得の場合はeach
複数取る場合は、
[controller側]
@users = User.where(**)
とかででデータを取っておいて、
[view側]
table
@users.each do |user|
tr
みたいな感じで使う。
・複数のテーブルから取得の場合は各テーブルでeach
③controller → model
[controller]
1. hashを返すパターン
def self.test(user_id)
{ user: TestModel.find_by_id(user_id),
detail: estModelDetail.find_by_id(user.detail_id),
img: PhotoTable.find_by_id(detail.img_id).image_url
}
end
...
details = TestModel.test(user_id)
@user = details[:user]
2. 配列を返すパターン
def self.test(user_id)
[ TestModel.find_by_id(user_id),
estModelDetail.find_by_id(user.detail_id),
PhotoTable.find_by_id(detail.img_id).image_url
]
end
...
@user, @detail, @img = TestModel.test(user_id)
[model]
class TestModel < ActiveRecord::Base
def self.test(user_id)
@user = user.find(user_id) ※1
end
end
hashで入れてreturnでjsonにすることも可能。
jsonにするのは、to_jsonで出来ます。
抜粋元
https://teratail.com/questions/28938
④controller ← model
※1を参照。modelからcontrollerへは基本的にインスタンスで値を戻す。
⑤model → DB
1レコードなら、save
複数レコードなら、eachで回して各レコードごとにインサート
複数テーブルなら、各々のテーブルをeachする方法がベター
⑥DB → model
■ debug 方法
logger.info("*** text ***")
raise(パラメ).inspect
slimの場合は前に - を
- raise(パラメ).inspec
■CSV出力
http://cobachie.hatenablog.com/entry/2015/05/22/102434
■viewの役割
・ユーザー操作でインプットしたデータをcontroller側へ受け渡し
・controller側からのデータ受取りと画面へデータ表示
■controllerの役割
・画面のパラメータをparamsをコントローラーへ渡す。idだけ渡すことも多い。
・view側へは、基本的にインスタンスで値を返す。
■modelの役割
・データ処理の実態(メソッド)
・バリデーションは出来る限りmodel内で実施
・DBへのSave
└単一レコードへのインサートはSaveする。
└複数レコードへのインサートはSaveをeachで回す。
■標準クラス・モジュール毎の良く使うメソッド
http://ref.xaio.jp/ruby/classes
■WWW
・http
パラメータの扱いがほぼ全て
パラメータの取得
http://www.rubylife.jp/rails/controller/index6.html
・html
基礎が一通り必要
・css
・表示/非表示方法
show, hide, toggle
・幅・高さの調節だけで、先ずは概ねok
display, height, width, margin, padding
text-align, font, color, background-color
・js
ほぼjquery+ajax(場合による)だけでok
http://www.tohoho-web.com/js/jquery/
・Core
・Selector
・Traversing
・Event
・Attributes
・CSS
・Manipulation
・Ajax
・Miscellaneous
・Utilities
※ボタンとかのイベントと値を拾って他のhtml要素の状態を変化させるってところが重要。
特にinput系html: button,radio,select,text イベントはclick, change, submit くらい。
jsも結局はjqueryを使って画面操作が一通り出来ればいいって言う話で、
画面操作に必要な書き方はある程度限られる。
【詳細について】
細かいのは後でもいいですが、
細かいとこまで知ってると上手く動かない原因が直ぐにわかる。
www入門
http://www.tohoho-web.com/www.htm
■git
・新規チケ対応
git checkout develop ←スイッチブランチ
git pull ←差分取り込み ※ただし、developに変更点がないことを確認する。
git checkout -b feature-mailmagazine-target ←新規ブランチ作成/スイッチ
・PUSHの流れ
git status
git add app/controllers/mail_magazine_exclusion_lists_controller.rb
git commit -m "#3029 add n.nogami 画面とテーブル作成”
git push origin feature-mailmagazine-target
■SQL
select * from users where id in(4);
INSERT INTO users(id,created_at,updated_at) VALUES(10,now(),now());
update users set username='m_a_i2' where id=4;
delete from users where id=4;
drop table users
describe users ←構成の確認
■OS
■Linux command操作
・サーバーの運用・管理でよく使うコマンド一覧
http://www.fulldigit.net/content/view/28/17/
■help
・teratail - 質問掲示板
https://teratail.com/tags
・stackoverflow
http://ja.stackoverflow.com/questions/tagged/ruby-on-rails
R参考サイト
■News/まとめ
・techacademy magazine
https://techacademy.jp/magazine/
・postd
http://postd.cc
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
■Ruby on Rails 全般
http://www.rubylife.jp/
■Ruby on Rails 全般
http://ruby-rails.hatenadiary.com/
■Ruby on Rails の情報サイト
https://www.oiax.jp/
■Railsを習得するために必要な技術要素の一覧
http://qiita.com/jnchito/items/063e332cbe3023f52f93
■Ruby on Railsドキュメント
http://railsdoc.com
■Ruby on Rails ガイド
http://railsguides.jp
■Ruby on Rails チュートリアル
http://railstutorial.jp
■逆引きRuby
http://www.namaraii.com/rubytips/
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
■rails generate
・rails generateコマンドの使い方
http://ruby-rails.hatenadiary.com/entry/20140802/1406948695
・scaffoldの利用
http://www.techscore.com/tech/Ruby/Rails/quick-start/Rails4/4-1/
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
■フロント関連
・Bootstrap入門
http://www.tohoho-web.com/ex/bootstrap.html
・Slim
https://github.com/slim-template/slim/blob/master/README.jp.md
・ビューヘルパーまとめ
http://ruby-rails.hatenadiary.com/entry/20150113/1421149061
■コントローラー関連
・コントーローラーとルーティング
http://www.stonedot.com/lecture5.html
・ActiveRecordの関連のすべて
http://www.stonedot.com/lecture6.html
■モデル関連
・バリデーションのまとめ
http://ruby-rails.hatenadiary.com/entry/20140724/1406145303
・railsコンソールでモジュール内のクラスメソッドの呼び出し方法
https://gist.github.com/g08m11/1682a2de189c487f88ab
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
■gem
・gem 検索
https://www.ruby-toolbox.com/
・Rails開発で必須 Gem一覧
http://post.simplie.jp/posts/26
■git
・ワーキングツリー、インデックス、HEADを使いこなす方法
http://qiita.com/shuntaro_tamura/items/db1aef9cf9d78db50ffe
・tig
http://qiita.com/suino/items/b0dae7e00bd7165f79ea
・githubの検索
https://github.com/search
■DB関連
・MySQL管理ソフトのSequel Pro入門
http://www.task-notes.com/entry/20150131/1422699221
■CSV
・CSV出力
http://rails.densan-labs.net/report/search_csv_export.html
