Ruby on RailsでBULK INSERT

やりたいこと RailsでBULK INSERTしたい。 方法 Gem「activerecord-import」を使う。 activerecord-importインストール。 $ vi Gemfile gem 'activerecord-import' $ sudo bundle install importメソッドを使用してBULK INSERT reg_tweets = [] tweets.each …

Ruby on RailsでURLにid以外の任意の項目を指定したい

やりたいこと Railsで機械的に振られたidではなく、モデル的に意味のある値(ユーザ名とか話数とか)でアクセスできるようにしたい。 方法 URLを変更したいモデルのto_paramメソッドをオーバーライド to_paramメソッドをオーバーライド $ vi app/models/chapte…

Ruby on Railsでバッチ処理

やりたいこと Rails上でバッチ処理を実行したい。 方法 rails runnerコマンドを使う。 rails runnerコマンドで実行するプログラムの作成 $ vi lib/tasks/anime_tweets_collect_task.rb # coding: utf-8 require 'anime_tweets_searcher' require 'anime_twee…

Ruby on RailsでログにタイムスタンプとプロセスIDを表示

やりたいこと ログ解析のためにタイムスタンプとプロセスIDを表示したい。 方法 タイムスタンプとプロセスIDを表示するためのログフォーマットクラスを定義 $ vi config/environment.rb # Load the rails application require File.expand_path('../applicat…

Ruby on Railsでasset pipeline関連のログを出力させない方法

やりたいこと ログが見辛くなるので下記の様なasset pipeline関連のログを出力させないようにしたい。 Started GET "/assets/scaffolds.css?body=1" for 219.118.179.251 at 2013-04-24 16:28:05 +0900 Served asset /scaffolds.css - 304 Not Modified (2ms…

Ruby on RailsでJSONをオブジェクトのままJavaScriptに渡す方法

やりたいこと Ajaxの非同期通信により取得したJSONデータをオブジェクトのままViewのJavaScriptに渡したい。 方法 rawメソッドを使用する。 ControllerにてDBから取得したデータを変数に格納。 $ vi app/controllers/chapters_controller.rb def tweets @twe…

jQueryでAjaxの通信開始/終了のイベントをハンドリングする方法

やりたいこと jQueryでAjaxの通信開始/終了のイベントをハンドリングし、Ajaxによる通信中であることがユーザに分かるようにしたい。 方法 jQueryのajaxStart/ajaxCompleteメソッドを使用する。 JSファイルにAjaxの通信開始/終了時の処理を記載。※applicatio…

Ruby on Rails 3 でAjaxを扱うための基礎

やりたいこと Rails3でAjaxを扱うための基礎として、メソッドをAjaxで呼び出し、取得データをViewに反映するところまで。 方法 「:remote => true」によりlink,formをAjax化し、Ajax用のerbファイルを作成する。 linkをAjax化 $ vi app/views/chapters/show.…

Ruby on Railsで独自のルーティングとメソッドを追加したい

やりたいこと Ruby on Railsでresourcesを使用しない独自のルーティングと、それに対応するメソッドを追加したい。 方法 route.rbにおいてmemberブロックを使用してルーティング追加 この例では各チャプター毎にツイートの一覧を返却する「tweets」ルーティ…

Ruby on Railsで親子関係にあるモデルのルーティング設定

やりたいこと Ruby on Railsで親子関係にあるモデルのルーティングを設定したい。 方法 route.rbにおいてモデルを下記の様にネストさせる。 $ vi config/route.rb TestApplication::Application.routes.draw do resources :animes do resources :chapters en…

Ruby on Railsで子テーブルのデータをソートする方法

やりたいこと Viewで@chapter.tweets的な感じで子テーブルのデータを一覧で表示する際にデータをソートしたい。 方法 親モデルのhas_manyにorder byを指定 $ vi app/models/chapter.rb class Chapter < ActiveRecord::Base has_many :tweets, :order => 'twe…

ActiveRecordをRails以外から使用する方法

やりたいこと ActiveRecordをRails以外の普通のスクリプトとかから使いたい。 方法 スクリプトファイル内でRailsの設定系のファイルを読み込む。 #coding: utf-8 require 'active_record' require '/railsdir/config/boot' require '/railsdir/config/enviro…

Ruby on Railsでアプリ全体にベーシック認証をかける方法

やりたいこと Railsでアプリ全体にベーシック認証をかけたい。 方法 アプリ共通のコントローラーにベーシック認証の設定を追加 $ app/controllers/application_controller.rb class ApplicationController < ActionController::Base protect_from_forgery # …

Ruby on RailsでDBにユニーク制約を付与する方法

やりたいこと RailsでDBにユニーク制約を付与したい。 方法 マイグレーションファイルを新規作成してユニークインデックスを追加 ユニークインデックス追加用のマイグレーションファイルを作成 $ rails generate migration AddIndexAnimeIdAndChapterToChapt…

Ruby on RailsでタイムゾーンにJSTを使用する方法

やりたいこと タイムゾーンにJSTを使用したい。 RailsではDB保存はUTCで行い、表示の時だけJSTにするというのが通常の方法らしいが、DBの値を元に障害調査する時など表示とDBの値が違うのは何かと面倒であるため、DB保存と表示どちらもJSTにする。 方法 appl…

Ruby on RailsでプルダウンメニューをDBの値から作成する方法

やりたいこと Ruby on RailsでプルダウンメニューをDBの値から生成したい。 各話テーブルのレコードを作成する際に、親となるアニメをプルダウンから選択したい場合など。 方法 collection_selectを使用 Viewのerbファイルにて下記の様に記載 <%= f.collecti…

Ruby on Railsで外部キー設定

Ruby on Railsで外部キー設定 スムーズに行くかと思いきや、地味にいろいろやることがある。 ちょっとRailsを過信しすぎたかも。 作りたいテーブルのリレーションについて アニメテーブルの1レコードに各話テーブルの複数レコードが紐付く やったこと 各モデ…

Ruby on RailsからPostgreSQLを使う

Ruby on RailsからPostgreSQLを使う RailsもPosgtreSQLも入ったので連携させてみる。 やったこと DBにPostgreSQLを指定してアプリ作成 アプリ作成 $ rails new test_apl -d postgresql Gem関連でエラー発生。Gemのインストールはrootで実施する必要があるの…

さくらVPS上にPostgreSQLインストール その3

さくらVPS上にPostgreSQLインストール PostgreSQLサーバのリモート接続の設定してみる。 やったこと postgresql.confの修正 $ sudo su - postgresql $ vi /var/lib/pgsql/data/postgresql.conf listen_addresses = '*' port 5432 pg_hba.confの修正 設定のポ…

さくらVPS上にPostgreSQLインストール その2

さくらVPS上にPostgreSQLインストール DB作成することろまで。 やったこと DB接続用ユーザ作成 $ sudo su - postgres $ createuser -U postgres -P testuser 新しいロールのパスワード: もう一度入力してください: 新しいロールをスーパーユーザとしますか…

さくらVPS上にPostgreSQLインストール その1

さくらVPS上にPostgreSQLインストール Rails入れたのでDBも使いたい。PostgreSQL入れてみる。 やったこと PostgreSQLインストール $ sudo yum install postgresql-server $ sudo yum install postgresql-devel $ sudo yum install postgresql-contrib postgr…

さくらVPS上にRuby on Railsインストール

さくらVPS上にRuby on Railsインストール せっかく借りてるのでRuby on Railsの環境構築してみる。 やったこと Ruby on Railsインストール opensslパッケージインストール。依存関係によりzlibなども同時にインストールされる。本来opensslのインストールはR…

いざ、さくらVPSを使い倒す!

いざ、さくらVPSを使い倒す! さくらVPS借りたのでいろいろなサイト見ながらもろもろ設定してみた。 やったこと SSH設定 作業用ユーザを作成、鍵認証によるログインのみを許可するところまで。 SELinuxを無効化 # vi /etc/sysconfig/selinux SELINUX=disable…

iPhoneアプリ「ゴウコンクン」リリース!

本日、自分が作ったiPhoneアプリがリリースされました!その名も「ゴウコンクン」です。合コンやパーティーなどでよくある、意中の相手を選択して両想いの二人をカップリングする、いわゆるフィーリングカップルができちゃうアプリです。興味がある人がいた…

iPhoneアプリ開発の足跡 その9

学んだこと Xcodeによるデバッグ方法 参考にさせて頂いたページ http://www.tsg.ne.jp/text/2004/joho/xcode.html http://deathcube.blog36.fc2.com/blog-entry-19.html http://blog.daisukeyamashita.com/post/961.html http://d.hatena.ne.jp/kacchi0516/2…

iPhoneアプリ開発の足跡 その8

学んだこと loadviewとviewdidloadの違い いずれもビューの初期化処理を行うメソッドであり、ビューのプロパティにアクセスすることで自動的に行われる。 initで初期化、loadViewメソッドでビューの設定、viewDidLoadでビューロード後のプロパティ初期化など…

iPhoneアプリ開発の足跡 その7

学んだこと プロパティの宣言について ドット演算子で他クラスのプロパティにアクセスするための設定。 @interface部で@propertyを宣言。 @implements部で@synthesizeを宣言。 通常は@propertyと@synthesizeには同じ値を設定する。 @propertyと@synthesizeの…

iPhoneアプリ開発の足跡 その6

学んだこと アニメーションについて こんな感じでアニメーションさせたい処理を挟む -(IBAction) displayView:(id) sender{ secondViewController = [[SecondViewController alloc] initWithNibName:@"SecondView" bundle:nil]; [UIView beginAnimations:@"f…

iPhoneアプリ開発の足跡 その5

iPhone デベロッパーズ クックブック作者: Erica Sadun,株式会社クイープ出版社/メーカー: ソフトバンククリエイティブ発売日: 2009/02/12メディア: 大型本購入: 20人 クリック: 474回この商品を含むブログ (60件) を見る 学んだこと 基礎的なことはだいたい…

iPhoneアプリ開発の足跡 その4

学んだこと View Controllerについて UIViewとViewControllerは基本1対1。 UIViewを制御するためにViewControllerがいるというイメージ。 新規にUIViewとViewControllerを追加時にやること xibファイルを新規作成。 IBを使ってFile's ownerの「Class Identit…