サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
おみそ汁
babiy3104.hateblo.jp
RVM (Ruby Version Manager) はRubyのバージョン切り替えを簡単に行う便利なソフトウエアです。 https://rvm.io/ 通常のインストール (Single-User instrations) インストールも簡単。通常はユーザ毎にインストールするのが普通です。 \curl -L https://get.rvm.io | bash -s stable この場合は $HOME/.rvm 以下に ruby と gemsets が配置されます。 プロファイルも .bashrc や .bash_profile など自動更新されます。 マルチユーザモードでのインストール (Multi-User instrations) /usr/local/rvm 以下にコピーされます。 プロファイルは /etc/profile.d/rvm.sh にコピーされます。(Linuxの場合)
特定のフィールドを取得する select を使う User.select(:name) SELECT name FROM "users" 複数のフィールド名を指定できる User.select(:id, :name) SELECT id, name FROM "users" フィールド名は,区切りの文字列でもよい。 そのまま渡されるので max や minなども使える(てしまう)。 User.select("id,name") SELECT id,name FROM "users" ソートする order を使う。 User.order(:created_at) レコードの取得数と取得開始位置を制御する limit と offset を使う。 主キー(id)のソートは無くなるので、orderで明示しないと 結果が異なる。 次の例は先頭5件目から30件ずつ表示する。 User.limit(3
自分の書いたテストが、全体コードの何割を占めているかを示す指標をテストカバレッジといいます。数値化されるのでテストの妥当性の検証に役立ちます。 今回はそのカバレッジを調べるRubyライブラリ simplecov を調べてみました。 インストール gemパッケージですので次の通りインストールします。 $ gem install simplecov rails で使う場合は、Gemfile に次のように追加してbundle します。 gem 'simplecov', :require=>false, :group=>true テストで計測の時に require するのでここでは読み込まないようします 使い方 ヘルパメソッドに追加(初回のみ) test/test_helper.rb (RSpecの場合は spec/spec_helper)の一番最初に次の行を追加しまう require 'simp
最近のアプリケーションは git clone してパスを設定するだけ、 というものも増えてますが、chefにも git リソースがあります。 git のリモートリポジトリと同期をとり、更新を検出してくれる 点で execute リソースより優れています。 git "/home/hogehoge/somehoge" do repository "https://github.com/deratame/somehoge.git" revision "master" user "hogehoge" group "hogehoge" action :sync end actionについてですが、 :syncは、ローカルリポジトリが存在しなければclone、それ以外は更新 :checkoutは、ローカルリポジトリが存在しない場合のみcloneを行い、それ以外は何もしない :exportは、そのまんま
今日は風変わりなプラグイン turnout です。 https://github.com/biola/turnout メンテナンス期間のみ全てのアクションの画面を切り替えたい!っていうときに使います。 インストール方法 Gemfile に以下を追加します gem 'turnout' bundle installを実行します $ bundle install メンテナンスモードに移行する 次のコマンドを使います $ rake maintenance:start サーバを再起動しなくても読み取ることができます 引数をとることもできます。スペース区切りで複数のオプションを指定可能です reason メンテナンス中の理由などを記述します。 $ rake maintenance:start reason="サーバメンテナンスのため 1:00~4:00までアクセスできません。" allow_paths
基本 オブジェクトの生成・更新・削除のタイミングで呼び出されるメソッド トリガとなるイベント(validation,saveなど)の前(before)と後(after)に登録可能 コールバックはメソッドチェーンに追加される。 before_xxx で false を返すか例外を発生させると、それ以降の処理を停止させることができる (トランザクション中の場合は ROLLBACK を発生させる) 使い方 before_xxxx/after_xxxx メソッドでコールバックとするメソッド名を登録 メソッドを定義する 例 class Blog < ActiveRecord::Base after_save :saved_title protected after_validation :saved_title puts "Saved!!" end end 利用可能なコールバックの種類と実行順序 C
次のエラーがでた場合。 Mysql2::Error: Incorrect string value: 原因を調べる おおむね、データベースの文字コードを確認する。 たいてい latin1 とかになっている。 $ mysql -uuser -p my_db mysql > show create table posts; CREATE TABLE `posts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) DEFAULT NULL, `text` text, `created_at` datetime DEFAULT NULL, `updated_at` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAUL
複数のアプリケーションでバージョン違いのライブラリを 入れるなどしたい場合、bundle を組み合わせて使います。 rails 4.0.2 を vendor/bundle 以下にインストールする例 Gemfile を作成 source "https://rubygems.org" gem "rails", "4.0.2" bundle install vendor/bundle 以下にインストールします $ bundle install --path=vendor/bundle --binstubs=vendor/binこれで 実行できるようになります。 $ vendor/bin/rake --version rake, version 10.1.1vendor/bin は PATH に追加されないので、コマンド名のみで実行すると、 .rbenv 以下にインストールしたもの(以下、グローバ
クエリの流れ オプションからSQL文を組み立てる SQLを発行し、データベースからデータを取得する 取得したデータから Rubyオブジェクトを生成する after_find コールバックを呼び出す クエリを行うメソッド Model.take(limit) レコードに格納されている最初の値を取得する。 limit省略時は 1。 Blog.take SELECT "blogs".* FROM "blogs" LIMIT 1 Model.first(limit) 主キーでソートした最初の値を取得する limit省略時は 1。 Blog.first SELECT "blogs".* FROM "blogs" ORDER BY "blogs"."id" ASC LIMIT 1 Model.last(limit) 主キーでソートした最後の値を取得する limit省略時は 1。 Blog.last SE
他対他 の関連を参照する 元々は他対他を直接参照できるようにするもの。 +-------+ +-----------+ +-----+ |Product| 1---n |OrderDetail| n---1 |Order| +-------+ +-----------+ +-----+例えば、特定の Order中の Productを調べたい場合など。 class Product < ActiveRecord::Base has_many :order_details has_many :orders, through: :order_details end class Order < ActiveRecord::Base has_many :order_details has_many :products, through: :order_details end class OrderDe
rails に sunspot という全文検索のプラグインがあります。 solrという検索エンジンを使っており、モデルに数行コードを追加するだけで、インデックスを動的に作成されます(再構築も可) https://github.com/sunspot/sunspot 準備 Gemfile に以下を追加 gem "sunspot-rails" gem "sunspot-solr" bundle コマンドで実行 $ bundle 設定ファイル(config/sunspot.yml)を作成 $ rails generate sunspot_rails:install 自動生成された config/sunspot.yml は次の通り。 production: solr: hostname: localhost port: 8983 log_level: WARNING # read_timeout:
このページを最初にブックマークしてみませんか?
『babiy3104.hateblo.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く