そういうことだったんですね

いろいろ調べたり学んだりしたことを忘れないように書き連ねています

Rails

rails - CRUDのまとめ

(adsbygoogle = window.adsbygoogle || []).push({}); 新規作成 レコードを新規作成する。 create Entry.create title: "タイトル", body: "本文" INSERT INTO "entries" ("body", "created_at", "title", "updated_at") VALUES (?, ?, ?, ?) [["body", "本…

rails - クエリの基本(2)

(adsbygoogle = window.adsbygoogle || []).push({}); 特定のフィールドを取得する select を使う User.select(:name) SELECT name FROM "users" 複数のフィールド名を指定できる User.select(:id, :name) SELECT id, name FROM "users" フィールド名は,区切…

rails - クエリの基本

クエリの流れ オプションからSQL文を組み立てる SQLを発行し、データベースからデータを取得する 取得したデータから Rubyオブジェクトを生成する after_find コールバックを呼び出す クエリを行うメソッド Model.take(limit) レコードに格納されている最初…

rails - ActiveRecord の コールバック

基本 オブジェクトの生成・更新・削除のタイミングで呼び出されるメソッド トリガとなるイベント(validation,saveなど)の前(before)と後(after)に登録可能 コールバックはメソッドチェーンに追加される。 before_xxx で false を返すか例外を発生させると、…

rails - has_many through:

他対他 の関連を参照する 元々は他対他を直接参照できるようにするもの。 +-------+ +-----------+ +-----+ |Product| 1---n |OrderDetail| n---1 |Order| +-------+ +-----------+ +-----+例えば、特定の Order中の Productを調べたい場合など。 class Prod…

rails - ActiveRecord Migration のまとめ

基本 db/migration 以下に YYYYMMDDhhmmdd_XXX_YYY.rb のファイルを作成する Migrationのファイル名とクラス名は一致していないとダメ ファイル名: YYYYMMDDhhmmdd_create_users.rb クラス名: CreateUsers 自分で設定ファイルを作成可能だが 基本的には rail…

rails - 便利なコマンド

ルーティングを表示する rake routes で、HTTPのメソッド名・パスとコントローラ・アクションの対応テーブル を出力できる。 $ rake route Prefix Verb URI Pattern Controller#Action welcome_index GET /welcome/index(.:format) welcome#index posts GET …

rails - Mysql2::Error: Incorrect string value

(adsbygoogle = window.adsbygoogle || []).push({}); 次のエラーがでた場合。 Mysql2::Error: Incorrect string value: 原因を調べる おおむね、データベースの文字コードを確認する。 たいてい latin1 とかになっている。 $ mysql -uuser -p my_db mysql >…

DB - MongoDB(3) mongoid

mongoid ( MongoDB を ruby から使うライブラリの一種です。 ODMであり ActiveRecordと同じような記述ができるので rails から使うには便利。 単体でも使えます。 Rails4 から動かす アプリケーションを作成します。 ActiveRecords を使わないので -O (--ski…

Rails - ER図を作成するアプリケーション erd

Rails 3 のアプリケーションからER図を生成するライブラリが rails-erd です。 リバースエンジニアリングしたいときに便利なツールです。 Graphviz | Graphviz - Graph Visualization Software を使用していますので別途インストールが必要です。 ER図のサン…

Rails/Ruby - テストカバレッジを調べる simplecov

自分の書いたテストが、全体コードの何割を占めているかを示す指標をテストカバレッジといいます。数値化されるのでテストの妥当性の検証に役立ちます。 今回はそのカバレッジを調べるRubyライブラリ simplecov を調べてみました。

Rails -メンテナンスモード

// 今日は風変わりなプラグイン turnout です。 https://github.com/biola/turnout メンテナンス期間のみ全てのアクションの画面を切り替えたい!っていうときに使います。

Rails - Tire と 全文検索エンジン Elasticsearch (3)

Rails - Tire と 全文検索エンジン Elasticsearch (2) - そういうことだったんですね の続きです。 Tire用のアプリケーションを作成 rails のアプリケーション searchapp を作成します。今回はDBはsqlite3を使います $ rails new searchapp Gemfile に次の行…

Rails - Tire と 全文検索エンジン Elasticsearch (2)

Rails - Tire と 全文検索エンジン Elasticsearch (1) の続きです はじめに 今回の例は elasticsearch をバックグラウンドで動作させます。 bin/elasticsearch で実行します。 Elasticsearch のインデックス 検索エンジンの要であるインデックスを操作します…

Rails - Apache との連携 Phusion Passenger

本番環境で使う場合は WEBrick だと心もたないし管理が面倒で、 実環境では Apache や Nginx などのWebサーバで動かすことが多いです(Unix/Linux環境の場合) 今回はPhusion Passengerについて RVMと組み合わせて導入する方法をまとめます。 前提 RVMは rails…

Rails - Tire と 全文検索エンジン Elasticsearch (1)

Elasticsearch は、Apache Lucene ベースの検索エンジンです。 fourcesquare や github 内部で使われています。 Tire という Rails プラグインのクライアントが出ています。 今回は、はじめに elasticsearch に調べて動かしてみます。 Apache Lucene(ルシー…

Rails - sunspot で全文検索をする(2)

Rails - sunspot で全文検索をする(1) - そういうことだったんですね の続きです。 each_hit_with_result を使う ブロック引数として hit, result の2つ渡されます。 result は検索対象モデルのオブジェクトが返るため属性にアクセスできます。 @search.each…

Rails - sunspot で全文検索をする(1)

rails に sunspot という全文検索のプラグインがあります。 solrという検索エンジンを使っており、モデルに数行コードを追加するだけで、インデックスを動的に作成されます(再構築も可) https://github.com/sunspot/sunspot

Rails - pagination プラグインを使う

最近は kaminari の方がかっちょよい、みたい。 使い方の流れ Gemfile gem 'kaminari' コマンド実行 $ bundle コントローラでfindやallしている部分を書き換え。表示件数はデフォルトで25件。 @users = User.page params[:page]

Rails - 入れ子構造のモデルを更新する(2)

accepts_nested_attributes_for の続きです。 子要素となるテーブルは新規追加?or更新? :id で挙動がかわります。 子要素の :id パラメータを指定すると更新(UPDATE)、指定しない場合は挿入(INSERT)となります。 例)Blog - Author のようなモデルがあった…

Rails - 入れ子構造のモデルを更新する

入れ子構造のモデルを更新するにはaccepts_nested_attributes_forを使用します 。 入れ子構造のモデルは、ショッピングサイトの注文画面のような注文モデルと注文項目モデルなど、複数のモデルを同時に更新したい場合などです。

Rails - RSpec を使う

今回はActiveSupport::TestCaseではなく RSpecを使う方法です。 Bundler に設定 お約束ですね。 $ vi Gemfile group :test do gem 'rspec-rails' end $ bundle

Rails - Fixtures を使わずにテストする

So-net ブログから移行しました。 自分が学んだことをカテゴリを問わず覚え書きする、恥曝し系ブログ。 今回は、 FactoryGirl を使うメモ書きです。 Ruby 2.0.0 / Rails 4.0.0

Rails4 (4) Rspec + Capybara で、エラーが発生する場合の修正方法

Ruby on Rails チュートリアル第3章でRspec + Capybara を使ってテストする部分がありますが、次のエラーが発生する場合があります。 $ bundle exec rspec spec/requests/static_pages_spec.rb 1) StaticPages Home page should have the content 'Sample A…

Rails4 (3)

前回はWindows上でセットアップしたが、なかなかやっかいなのでCentOS5.9上で実行。 最新OSでやらなかったのを後で悔いることに。。。 OSのインストールまでは割愛(VMWare上にセットアップ)。 CentOS 5.9 に Rails 環境を設定する ○ruby2.0をインストール…

Rails4 (2)

環境はできたと思いますので、実行してみます。 c:> mkdir c:\devc:> rails new c:/dev/test_appc:> cd dev/test_appc:> rails server

Rails4

Rails 4 がリリースされます。今回からRuby2.0に対応されたのでWindows環境へのセットアップを一気にGo! Ruby Installer を使用してインストール! スタート→すべてのプログラム→Ruby-2.0.0-pxxx-x64→Rubyコマンドプロンプトを開く rails をインストール…