【Sinatra】Helperを追加

公開日:2019-08-06
最終更新:2019-08-06

sinatraでHelperメソッドを呼び出し方を見ていきます!

*参考
http://sinatrarb.com/intro.html
https://hawksnowlog.blogspot.com/2017/10/sinatra-with-haml.html
https://codeday.me/jp/qa/20190301/335130.html

Helperについて

処理を共通化し、コードを見やすくしたり、コードの記述量を減らしたい場合、処理内容を「呼び出し可能な位置」に置くことです。

http://sinatrarb.com/intro.html
こちらではヘルパーメソッドをアプリのファイルに直接記述してますが、自分はRailsから始めたので少し違和感があります。笑
なので、ヘルパー用に新しくファイルを作成し、ヘルパーメソッドを呼び出す方法も紹介します。

なお、今回呼び出したいヘルパーメソッドは、与えられた引数に「bb」を追加して返すという単純なものです。

アプリファイルにヘルパーメソッドを埋め込む場合

こちらは単純です。

myapp.rb

中略  

helpers do  
    def  plusbb(a)  
        return(a+"bb")  
    end  
end  

get '/' do  
  @code = "ブリ"  
  @content = plusbb('aa')  
  erb :index  
end  

view/index.erb

<div><%= @code %></div>  
<div><%= @content %>:ヘルパー呼び出し</div>  

ヘルパーメソッドを直接アプリのファイルに書き込むことで、indec.erbからヘルパーメソッドを呼び出すことができました。

別ファイルにヘルパーメソッドを記述へする場合

こちらは、別ファイルにモジュールを作成し、そのモジュールを呼び出します。

myapp.rbと同じディレクトリに「helpers/helpers.rb」のフォルダとファイルを作成します。

helpers/helpers.rb

module Testhelper  
    def  plusbb(a)  
        return(a+"bb")  
    end      
end  

Testhelperというモジュールの中に、先ほどと同じplusbb(引数)のメソッドを定義しました。

myapp.rb

中略  
require './helpers/helpers.rb'  

helpers Testhelper  

get '/' do  
  @code = "ブリ"  
  @content = plusbb('aa')  
  erb :index  
end  

こちらも追記するコードがあります。
require './helpers/helpers.rb'で、helpersフォルダ配下のhelpers.rbを呼び出します。
helpers Testhelperは、ヘルパーメソッドを呼び出しています。

view/index.erb

<div><%= @code %></div>  
<div><%= @content %>:ヘルパー呼び出し</div>  

でアプリファイル内でヘルパーメソッドを呼び出す場合と全く同じ結果になります。

まとめ

ヘルパーメソッドはアプリファイル内に処理が速いのかなと思います。
でも、モジュール化し、処理を呼び出すことはアプリが大規模になるにつれ必要となってくるので、ヘルパーメソッドのみならず、他の場面でも参考にしていただけると幸いです。

記事が少しでもいいなと思ったらクラップを送ってみよう!
0
+1
初学者の成長が垣間見れます

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする