NR Memo
Amebaでブログを始めよう!

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