Opal
Rails5

Rails 5 で Opal を使う

Opalとは

Opal は、Ruby を javascriptにコンパイル、実行するAltJSです。

環境

  • Rails 5.1.4
  • Ruby 2.4.2
  • Opal 0.10.5

使い方

Gemfile

# Gemfile
gem 'opal-rails'
gem 'opal-jquery'

application.js.rb

application.jsapplication.js.rbに変更。

# app/assets/javascripts/application.js.rb
require 'opal'
require 'opal_ujs'
require 'turbolinks'
require_tree '.'

require_tree . ではなく、require_tree '.'にする。

script

# app/assets/javascripts/sample.js.rb
Document.on 'turbolinks:load' do
  Element['#sample'].on 'click' do
    alert 'sample'
  end
end
# turbolinksによるページ切り替えの際に、実行されないので、上のように書く方が良い。
Document.ready? do
  Element['#sample'].on 'click' do
    alert 'sample'
  end
end

view

# app/views/users/index.html.slim
button#sample サンプル

参考URL

Opal Ruby in the Browser

こちらのほうが詳しいです。
(https://github.com/opal/opal-rails)
お役に立てば幸いです。