代々木で働く超新米エンジニアの足跡

代々木で働くエンジニアです。超新米です。

日付の計算 足し算 引き算

日付の計算(加減法) require "date" d = Date.today #=>今日の日付を取得 afterDay = d + 1 #=>今日の日付 + 1日の日付を取得(つまり明日) beforeDay = d - 5 # =>今日より5日前の日付を取得

文字型からdate型に変える

require 'date' date = Date.strptime('2014年6月2日','%Y年%m月%d日') 参考:文字列型からDate型に変換する - Qiita

pluck(データベースの特定のカラムを配列として取得)

pluck selectやwhereで取得してきたものは型が”ActiveRecord_Relation”になっているので 配列として取得したいときに使う title = Title.where(:type => "A") #typeからむがAのものをすべて取得 p title.pluck(:name) #上で取得してきたものの名前のみを全て…

カラムの追加とデフォルト設定

カラムの追加とデフォルト設定 カラムに追加するときデフォルトの値を設定する方法 alter table titles add crawl int(11) default 0;

update(Activerecordを用いてカラムの更新)

update 既存のデータのカラムの更新をするときにつかう title = Title.find_by(:title => "わっしょい") title.update(:num => 1) まず、更新したいデータの行全体を取得しなければならない 今回は1行目でtitleがわっしょいのものを取得してきた(1つのみ) …

find_by (データベースから条件に合致するもの1つを取得)

find_by Title.find_by(:title => "data") タイトルというカラムがdataのものを1つ取得するない場合はnilが返ってくるので、合致するデータがあるかないか判断するときに便利

AUTO_INCREMENTの値をリセットする

AUTO_INCREMENTの値をリセットする データを削除してもidの値はどんどん上がってしまうのでリセットする方法 ALTER TABLE <テーブル名> AUTO_INCREMENT = 1; 参考:AUTO_INCREMENTの値をリセットする方法【MySQL】 - Programming Magic

open_uri_redirections

open_uri_redirections httpからhttpsへのリダイレクトされるURLをopen-uriで取得しようとするとでエラーが発生するopen_uri_redirectionsというgemをインストールして解決参考:[Ruby] open-uriでhttp->httpsのリダイレクトが禁止されている件 - Qiita

配列の最後だけ抽出

array = ["a","b","c"] p array.last # => "c"

スクレイピングのセレクタ(CSS)

セレクタの書き方 li:nth-child(3)→3番めのlili:first→最初のli参考:https://keikenchi.com/css-style-n

配列の比較

配列同士を比較して差の内容を出力 array_1 = ["a","b","c"] array_2 = ["a","b"] puts array_1 - array_2 cが出力される参考:https://teratail.com/questions/1422

gitの操作をする前に

1 git status で状態を確認2 管理したい場所に行く3 branchの確認commitしてからpush git Hubで確認新しいディレクトリをとりこむときはクローン それ以外はpull

正規表現 鉤括弧の中身

/(『)(.+?)(』)/ =~ title p $2 titleが『○○○』で、括弧の中身だけを出力したいとき

文末の文字を削除 -chop-

chop 文末一文字を削除できるhttp://ref.xaio.jp/ruby/classes/string/chop

スクレイピング文字化け

R

スクレイピング文字化け修正 require 'open-uri' require 'nokogiri' uri = "http://www…" page = URI.parse(uri).read charset = page.charset if charset == "iso-8859-1" charset = page.scan(/charset="?([^\s"]*)/i).first.join end document = Nokogir…

クラスを調べる

R

class クラスを調べる 文字列.class http://kinopyo.com/ja/blog/to-find-out-ruby-object-class p と puts pはオブジェクトを表示 putsは表面上のものを表示

compact each_with_index include?

compact 配列からnilを取り除くhttp://ref.xaio.jp/ruby/classes/array/compact each_with_index と 配列の中に配列を加える eachを使いながら、数が増える変数を使える zikan.each_with_index do |zikangumi,i| if zikan_array[i].nil? zikan_array.push([]…

activerecord where

指定した条件のものだけ抽出 p User.where(gender: "f") orderも後ろに続けられる

activerecord ソート

ageのカラムを数字が小さい順に並び替えて出力 p User.order("age") class User < ActiveRecord::Base end p User.all Userテーブルの中身を全て表示 mysqlではusers ActiverecordではUserにする *レコードを全て削除 #User.destroy_all

mysql ソートかつ特定のものを抽出

orderとwhereを使うが、先にwhere文を使う

each_with_index

File.open("meibo4.csv","w") do |file| row.each_with_index{|k, i| file.puts "#{k[0]},#{k[1]},\"#{k[2]}\"" } end ファイルに書き込みながら、配列に同じ動作を繰り返しインデックスをつけるrowは配列 rowのものがkにはいる iは0から順に数が増えていく…

join

join 配列の中の要素をくっつける引数を指定すると、それ区切りでくっつけてくれる arr = ["hello", "world", 123] puts arr.join(", ") puts arr.join

二重配列 each ソート chomp

二重配列 配列の中に配列がある each 配列の中身1つ1つにある処理を実行したいときに使う ソート row2 = row.sort { |a, b| a[2] <=> b[2] } 配列の2番目の要素で小さい順にソートしている chomp 文字列の最後の改行を取り除く

ハッシュの書き方の例

hash = {"Yamada" => 34, "Katou" => 28, "Endou" => 18} puts hash["Katou"] 参考:http://www.rubylife.jp/ini/hash/index2.html

split 正規表現 配列内の平均値 ファイルの読み込み

split 配列の中身を特定の文字で分離する #タブで区切った text.split(" ") 正規表現(2桁の数字) /(\d{2})/ 配列内の平均値 array = [12,343,112,55,74,11] puts array.inject(0.0){|r,i| r+=i }/array.size 参考:http://unageanu.hatenablog.com/entry/20…

変数

グローバル変数 $num インスタンス変数 @num

rbenv

rbenv rubyのバージョン管理に使う rubyのバージョン確認 rbenv -v インストール済みで利用可能なrubyのバージョンを確認 rbenv versions

rand 文字列に変数を代入 include

rand 0~4までのランダムの数字を返す rand(5) 1~10までのランダムの数字を返す場合 rand(10)+1 参考:http://qiita.com/Konboi@github/items/e53296e99e297f83cfd1 文字列中に変数を入れる puts "文字列#{hensu}" 参考:http://www.rsch.tuis.ac.jp/~ohmi/ruby…

restとは

Rest RESTとは、2000年にRoy Fielding氏が提唱した、分散システムにおいて複数のソフトウェアを連携させるのに適した設計原則の集合。また、狭義には、それをWebに適用したソフトウェアの設計様式のこと。一般には後者の意味で用いられることがほとんどであ…

NCMB データを登録する

NCMB データを登録する client.post("/2013-09-01/classes/データベース名/",{カラム名:"データ"})