Ruby on Rails

Rails をAPI モードで new する

Ruby on Rails 5 から API モードが追加されました。
View 部分に関するファイルや Gem が外れている、API 開発に特化したアプリケーションを作成できます。

バージョン指定するための準備

さて、今回使用したい Rails のバージョンが 5.1.4 です。

ローカルの gem list を確認してみて、どのバージョンがインストールされているのかを確認します。

$ gem list rails

*** LOCAL GEMS ***

autoprefixer-rails (9.0.0, 7.1.4.1)
capistrano-rails (1.4.0)
coffee-rails (4.2.2, 4.1.1, 4.1.0, 4.0.1)
compass-rails (2.0.0)
factory_girl_rails (4.4.1)
font-awesome-rails (4.7.0.4)
haml-rails (1.0.0)
jquery-rails (4.3.3, 4.3.1, 4.2.1, 4.0.5, 4.0.4, 4.0.3, 3.1.5)
pry-rails (0.3.6, 0.3.4)
rails (5.2.1, 5.2.0, 5.0.7, 5.0.1, 4.2.6, 4.2.5, 4.2.3, 4.2.1, 4.1.6)
rails-controller-testing (1.0.2)
rails-deprecated_sanitizer (1.0.3)
rails-dom-testing (2.0.3, 1.0.9, 1.0.8, 1.0.7, 1.0.6)
rails-html-sanitizer (1.0.4, 1.0.3, 1.0.2)
rails_12factor (0.0.3)
rails_serve_static_assets (0.0.5)
rails_stdout_logging (0.0.5)
rspec-rails (3.8.0)
sass-rails (5.0.7, 5.0.6, 5.0.4, 5.0.3, 4.0.5, 4.0.4, 4.0.2)
sprockets-rails (3.2.1, 3.2.0, 2.3.3, 2.3.2, 2.2.4, 2.0.1)

ということで、5.1.xはいませんので、ローカルの gem に追加していきます。

$ gem i -v 5.1.4 rails
*** LOCAL GEMS ***

autoprefixer-rails (9.0.0, 7.1.4.1)
capistrano-rails (1.4.0)
coffee-rails (4.2.2, 4.1.1, 4.1.0, 4.0.1)
compass-rails (2.0.0)
factory_girl_rails (4.4.1)
font-awesome-rails (4.7.0.4)
haml-rails (1.0.0)
jquery-rails (4.3.3, 4.3.1, 4.2.1, 4.0.5, 4.0.4, 4.0.3, 3.1.5)
pry-rails (0.3.6, 0.3.4)
rails (5.2.1, 5.2.0, 5.1.6, 5.1.4, 5.0.7, 5.0.1, 4.2.6, 4.2.5, 4.2.3, 4.2.1, 4.1.6)
rails-controller-testing (1.0.2)
rails-deprecated_sanitizer (1.0.3)
rails-dom-testing (2.0.3, 1.0.9, 1.0.8, 1.0.7, 1.0.6)
rails-html-sanitizer (1.0.4, 1.0.3, 1.0.2)
rails_12factor (0.0.3)
rails_serve_static_assets (0.0.5)
rails_stdout_logging (0.0.5)
rspec-rails (3.8.0)
sass-rails (5.0.7, 5.0.6, 5.0.4, 5.0.3, 4.0.5, 4.0.4, 4.0.2)
sprockets-rails (3.2.1, 3.2.0, 2.3.3, 2.3.2, 2.2.4, 2.0.1)

ということで、5.1.x がインストールできました。

rails new

というわけで、無事にインストールしたいバージョンの gem をローカルにインストールしたので、いよいよアプリケーションを new します。

$ rails _5.1.4_ new app_name --api

サーバが起動するか確認する

$ cd app_name
$ rails s

http://localhost:3000/ にアクセスして以下が表示されたら成功です!
Image from Gyazo

最後に DB も作っておきます。

$ rake db:create
Created database 'db/development.sqlite3'
Created database 'db/test.sqlite3'

image_tag ヘルパーの assets path の書き方と幅・高さ指定

image_tag ヘルパーを使用したときに assets path の書き方をいつも検索してしまうので、備忘録。

このヘルパーを使用した時の画像パスは、デフォルトで app/assets/images/ を参照するようになっているので、表示させたい画像が images ディレクトリにある場合は、画像のファイル名だけ記述するだけで大丈夫。

=image_tag 'image.png', :alt => '画像だよ'

※ ちなみに alt 属性は指定しないと、画像のファイル名の拡張子以外の部分の先頭大文字で設定してくれます。ファイル名にアンダースコアが入っている場合はそこが半角スペースになって設定されます。

そして、ついでに image_tag ヘルパーなら画像の幅と高さの指定も簡単にできます。

=image_tag 'image.png', :alt => '画像だよ', :size => '100x150'

幅と高さを別々に指定する場合は

=image_tag 'image.png', :alt => '画像だよ', :width => '100', :height => '150'

こんな感じです。

link_to ヘルパーの中に image_tag ヘルパーを入れる

View を Haml で記述しているのですが、いつも画像リンクの作り方を失念してしまうので、ここで備忘録。
link_to ヘルパーのブロック構文を使って記述するのがどうやら良さそうですね(^^)

=link_to "url"  do
  =image_tag "image_source", alt: => "alternate strings"

=link_to image_tag("image_source"), "url"

ブロック構文を使用すれば、リンクタグの中身に画像以外のものも追加で記述したいときに便利です(^^)

=link_to "url"  do
  %span ポコにゃん!
  =image_tag "image_source", alt: => "alternate strings"