RubyMineからRailsプロジェクトのデータベースを見る
タイトル通り、RubyMineからRailsプロジェクトで使用する
データーベースを見る手順です。
1.DataBaseウィンドウを表示する
メニューバーより、以下を選択する。
・[View] - [Tool Windows] - [Database]
2.データベースに接続する
MySQLの場合は、DataBaseウィンドウで
以下の作業を行わないとデフォルトでは接続されませんでした。
・データベースを右クリック - [Data Source Properties]
・「Data Sources and Drivers」ウィンドウが表示される。
・右下の[Auto sync]をチェックし、[OK]ボタンを押下する。
簡単ですが、プロジェクト毎に行う作業となると思うので
備忘録として残しておきます。
OS X MavericksにRails環境を作る
タイトル通り、OS X MavericksにRails環境を作りました。
が、CommandLineToolsのインストールなどで
Marvericksで手順が変わった所があり
イロイロなサイトから情報をかき集めての作業となりました。
なので、今回行った作業手順と参考サイトを纏めて
メモ代わりに残しておきます。
1.Javaをインストール
Javaのバージョンを確認する以下のコマンドを実行するとJavaが入っていない場合は、インストールするダイアログが表示されます。
$ java -version
2.CommandLineToolsのインストール
以下のコマンドを実行すると、ダイアログが表示されるので「インストール」をクリックします。
$ xcode-select --install
3.HomeBrewのインストール
以下のコマンドを実行します。$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
インストールが終わったら、バージョンを確認してみます。
$ brew -v
4.rbenvとruby-buildをインストール
以下のコマンドを実行します。
$ brew update
$ brew install rbenv
5.パスを通す
以下のコマンドを実行します。$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
6.利用可能なRubyを一覧表示する
以下のコマンドを実行します。$ rbenv install -l
7.Rubyのインストール
以下のコマンドで、任意のRubyをインストールします。$ rbenv install 任意のバージョン
インストールしたRubyを、使用するRubyのバージョンとして登録します。
$ rbenv global 任意のバージョン
ここでマシンを再起動しないと、ruby -v でバージョンを確認した際に
指定していないバージョン(プレインストール済みのもの?)が表示されました。
再起動後、Rubyのバージョンを確認します。
$ ruby -v
8.Railsのインストール
以下のコマンドを実行します。
$ gem update
が、私が行った時には以下のエラーとなりました。
「bad response Service Unavailable 503」
どうもアクセス先がエラーなのが原因っぽいです。
時間を空けて、再度実行すると、無事に完了しました。
次にRailsのインストールです。
$ gem install rails
最後に、以下のコマンドを実行します。
$ rbenv rehash
以上です。
参考サイト
http://qiita.com/b4b4r07/items/6efebc2f3d1cbbd393fc
http://blog.youria.jp/kyo/osx/install_commandlinetools_into_mavericks/
http://hotwebtopics.seesaa.net/article/363130989.html
http://tools4hack.santalab.me/howto-mountainlion-install-homebrew.html
http://qiita.com/ryo0301/items/3c9a02e03b4e9a41f576
GitHub for Windows リポジトリを別アカウントに移動する
タイトル通り、GitHub for Windowsを使い
リポジトリを別のアカウントに移動する手順についてです。
リポジトリをそのまま移動するメリットは、タグや履歴なども
同時に移動されることです。
Gitレポジトリを移行する方法 - tanacasinoのメモ
を参考にしましたが、GitHub for Windowsを使い
リポジトリを別アカウントに移す方法について書きます。
0.(移動先のアカウントを作っておく)
1.移行元のアカウントに接続
2.移行するリポジトリをClone
3.移行先のリポジトリを作成
ブラウザにて移行先のGitHubアカウントを開き
[Repository]タグ-[New]でリポジトリを作る。
4.移行先のアカウントに接続
5.PowerShell起動
GitHub for Windowsで、移動したいリポジトリを右クリックし
PowerShellを起動する。
6.リポジトリの移動
以下のコマンドをPowerShellで実行し、リポジトリを移動する。
$ git push --mirror https://github.com/アカウント名/リポジトリ名
以上です。
Ruby on Rails - Mobile対応サイトの作成とRSpecのテスト
Ruby on Railsにて、PC向けのページと、Mobile向けのページを切り替える方法と
RSpecによるテストについてです。
仕様としては、クライアントのブラウザを判定し、それぞれ向けのLayout、
Viewファイルを表示します。
■ブラウザと表示するファイル
・iPhoneのSafariの場合は、ファイル名が「~.iphone.erb」のLayout、View
・Androidの場合は、「~.android.erb」のLayout、View
・それ以外の場合は、「~.html.erb」のLayout、View
尚、クライアントからのアクセスを判定し、PC向け、Mobile向けと
ページを切り替える方法については下記サイトを参考にしました。
参考サイト
jQueryMobileを使って 簡単にRuby on RailsサイトをクールなiPhone対応サイトにしてみた - @yuumi3のお仕事日記
以下、ソースの解説です。
1.mine typeの登録
iPhone向け、Android向けのLayout、Viewファイルを定義します。/config/initializers/mime_types.rb
Mime::Type.register_alias "text/html", :iphone Mime::Type.register_alias "text/html", :android
2.ブラウザの判定と、表示するLayout・Viewの設定
全てのページに共通することなので、ApplicationControllerに記述します。/app/controllers/application_controller.rb
class ApplicationController < ActionController::Base # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. protect_from_forgery with: :exception layout :set_layout before_filter :set_format def set_format request.format = :iphone if iphone_request? request.format = :android if android_request? end def set_layout return "mobile" if (iphone_request? || android_request?) return "application" end private def iphone_request? request.user_agent =~ /(Mobile.+Safari)/ end private def android_request? request.user_agent =~ /(Android)/ end end
先ずはブラウザを判定する、iphone_request?()、android_request?()メソッドについてです。
user_agentを参照し、iPhone Safariを表す文字列があるか、Androidを表す文字列があるかで
ブラウザを判定しています。
次にLayoutファイルを設定する、set_layout()メソッドについてです。
上記のiphone_request?()、android_request?()メソッドを呼び出し
iPhoneもしくはAndroidの場合は、Layoutファイル名が「mobile.~」となり
それ以外は「application.~」となるように値を返却しています。
最後にViewのファイルフォーマットを設定する、set_format()メソッドについてです。
上記のiphone_request?()、android_request?()メソッドを呼び出し
iPhoneの場合は、Viewのファイル名が「~.iphone.erb」となり
Androidの場合は、「~.android.erb」となるように値を返却しています。
ここで使用している「:iphone」「:android」は、上記「mine typeの登録」で定義した値です。
3.RSpecによるテスト
ApplicationControllerについて、ユニットテストを記述すると以下のようになります。/spec/controllers/application_controller_spec.rb
require 'spec_helper' describe ApplicationController do controller do def index render :template => 'public/index' end end describe "iphone format, layout" do before(:each) do request.user_agent = "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_6 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B651 Safari/9537.53" get :index end it "should correct format" do request.format.symbol.should eq(:iphone) end it "should correct layout" do response.should render_template(layout: "mobile") end end describe "android format, layout" do before(:each) do request.user_agent = "Mozilla/5.0 (Linux; U; Android 4.0.3; ja-jp; AT570 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30" get :index end it "should correct format" do request.format.symbol.should eq(:android) end it "should correct layout" do response.should render_template(layout: "mobile") end end describe "non mobile format, layout" do before(:each) do get :index end it "should correct format" do request.format.symbol.should eq(:html) end it "should correct layout" do response.should render_template(layout: "application") end end end
ここでのポイントは、「controller do・・・」ブロックでAnonymous controllerを
定義していることです。
この、いわばダミーのコントローラを定義することにより、下のテストコード内で
「get :index」という形式でGet要求を投げ、Responseを取得してテストすることが
可能となっています。
後は見ての通り、iPhone・Android向けにuser_agentを設定し
それぞれのLayout、Viewが正しく設定されているかをテストしています。
4.Layoutファイル
Layoutファイルは、以下の4つを作成しました。・application.html.erb ・・・ iPhone、Android以外のLayout
・mobile.html.erb ・・・ iPhone、Androidの共通Layout
・mobile.android.erb ・・・ AndroidのLayout
・mobile.iphone.erb ・・・ iPhoneのLayout
ここでのポイントは、iPhone、AndroidでそれぞれLayoutを用意していることと
共通のLayoutとして「mobile.html.erb」を用意していることです。
iPhone、AndroidでそれぞれLayoutを用意したのは、上記のApplicationController内で
ファイルのフォーマットが「~.iphone.erb」「~.android.erb」となるよう
設定したためです。
iPhone、Androidでデザインが共通する部分については
「mobile.html.erb」内に記述し、「~.iphone.erb」「~.android.erb」から
参照する形としました。
5.Viewファイル
Viewファイルは、今回はpublicフォルダ内に以下の3つを作成しました。・index.html.erb
・index.android.erb
・index.iphone.erb
ファイルのフォーマットが、ApplicationControllerのset_layout()メソッドで指定した
形式となっています。
【まとめ】
以上です。
user_agentを判定し、ブラウザ毎に表示するViewのフォーマットを
指定することで、Mobile対応サイトを作ることができます。
RubyMineに既存のRailsアプリケーションを読み込む
既存のRailsアプリケーションを、RubyMineで読み込み
デバッグ実行したいことがあるかと思います。
今回はその手順についてです。
尚、公式ドキュメントを読んだわけではないので
完全に俺流のやり方になります。
1.[File]-[New Project]を押下。
2.[Create New Project]ダイアログにて
[Location]は対象のアプリケーションのフォルダを選択。
[Project Type]は[Rails Application]を選択。
3.[Create New Project]ダイアログにて、存在するプロジェクトの変わりに
新しいプロジェクトを作るか?(超訳)、と聞いてくるので[No]を選択。
4.[Rails Application Settings]ダイアログにて
[Use existing Rails Application]を選択する。
他、適切なRubyやRailsのバージョンを選択し、[OK]ボタンを押下する。
【まとめ】
以上で出来ました。
既存のプロジェクトを取り込むのに、[New Project]から始まるのが
他のIDEとは違うと感じるところです。
(「Project」とはRubyMineのProjectを指しているためだと思われる。)
GitHub for Windows コミット~タグ付け
GitHub for Windows を使い、コミットを行い
タグを付けるまでの手順について
毎回調べているので纏めておきます。
1.コミット
GitHub for Windowsで対象のリポジトリを開くとコミットしていない場合は「Uncommitted changes」と左上に表示されます。
「Summary」や「Description」を記入し、「Commit to master」を押下すると
コミット完了です。
2.sync
コミットしただけでは、サーバのリポジトリには反映されていません。サーバのリポジトリに反映させる(pushを行う)には、右上の「sync」を押下します。
3.タグ付け
タグを付けるには、シェルを起動してコマンドを実行します。リポジトリを右クリック - 「Open a shell here」を押下すると
シェルが起動します。
以下、よく使うコマンドです。
$ git tag タグを確認します。 $ git tag -a タグ名 -m "メッセージ" タグをローカルリポジトリに作成します。 $ git tag タグを確認します。 $ git push --tags タグをサーバのリポジトリに反映します。
4.まとめ
以上です。GitHub for Windowsを使う場合、GUI、CUIを適時使い分けるのが
初心者には使いやすいのかなと思います。