2016-04-01から1ヶ月間の記事一覧

関連するモデルの最大値・最小値の求め方

railsで関連するモデルの最大値・最小値の出し方です。 まったく知らなかったので、備忘録で書いておきます。 UserモデルがCommentモデルをもっているとします。 class User < ActiveRecord::Base has_many :comments end maximum user = User.first user.co…

klassの使い方

klassって意味がわかんないよーって状態だったので、調べました。 下記を参考にさせていただきました。 stackoverflow.com 定義 classは予約語なので、classが使えないときに使いましょうということでした。 サンプル def inspect_class(class) puts class.c…

update_attributes/update_columnsの違い

今日はupdate_attributes/update_columnsの違いについて説明します。 自分自身が違いを理解していなかったので、使い分けの理解ができていなかったです。 概要 下記の記事から引用させていただきます。 qiita.com メソッド 保存 バリデーション(*1) コールバ…

railsのroutesの確認方法のまとめ

routesの確認方法をまとめます。 コマンドラインでbundle exec rake routes bundle exec rails serverの適当なURLを叩いて、error画面で確認する http://localhost:3000/rails/info/routesにアクセスする この3種類かと思います。 他にあれば、指摘をお願い…

moduleの定数にアクセスする方法

moduleの定数にアクセスする必要があるとは思ってもいなかったです。 まさかこんな日が来るとは・・・ module Hoge class Hogehoge HOGE = "hoge" end end p Hoge::Hogehoge::HOGE → hoge module Hogee module Hogehogee HOGEEEE = "hogeeee" end end p Hoge…

rubyメソッドチェーンの作り方

今日はメソッドチェーンの作り方を教えてもらいました。 応用が利くことになると思うので、備忘録的に書いておきます。 メソッドチェーンとは メソッドチェーンとは、メソッドをつなげていくものです。 サンプルです 'hoGe'.downcase.upcase => 'HOGE' 作り…

sshのconfig設定

ssh

sshで複数ログインする場合、ssh -p hoge@...****と書くのがめんどくさいです。 その場合、.ssh/configファイルを作成します Host hoge ←接続名称 HostName ***.***.***.*** ←IPアドレスを入力 IdentityFile ~/.ssh/id_rsa ←秘密の置いている場所 User hoge …

rbenv-default-gemsが便利!

rbenv-default-gemsが超便利です。 rubocopを使用していて、rubyのversion変更していたらエラーが出たので、解決策を探していました。 エラー内容です。 Error: rbenv: rubocop: command not found The `rubocop' command exists in these Ruby versions: 2.…

rubyの可変長引数

メソッドの引数で*hogeが気になっていました。 *がついている引数を可変長変数といいます。 意味 コンピューターで,処理単位の長さを変えられるようにしたもの。ファイルを小さくできる。 可変長(かへんちょう)とは - コトバンク メソッドでは、処理単位の…

ActiveRecordのwhereの書き方

whereって気にもせずに書いていたので、色んな書き方があると知りました。 備忘録として書いておきます。 一致しているものがあるかどうか Post.where(body: 'hoge', id: 1) Post.where('body = ? and id = ?', 'hoge', 1) ○○以上、以下 Post.where('id >= ?…

with_indexについて

便利メソッドの紹介です。 railsでユニークな値をつけたいときには、with_indexを使えば簡単に実現できます。 pepole = %w(Bob Tom Lazy) pepole.each.with_index do |name, index| p "#{index}:#{name}" => "0:Bob" "1:Tom" "2:Lazy" end each_with_indexで…

配列の要素を検索するメソッド

配列に対しての操作に便利なメソッドをまとめていきます。 detect ブロックを各要素に対して実行し、戻り値が最初に真になったものを返す number = %w(1 2 3 4 5 6 7 8 9 10).map(&:to_i) number.detect(&:even?) => 2 select ブロックを書く要素に対して実…

スペースシップ演算子について

スペースシップ演算子(<=>)を初めて知りました。 巷では、宇宙演算子とも呼ばれているようです。 具体的な動作を見てみましょう。 役割 左辺の値が右辺よりも小さければ負の数、等しければ0、大きければ正の数を返す 基本的な動作です 100 <=> 10 => 1 100 …