Sinatra で link_to を使う
link_to 等のヘルパメソッドは sinatra 本体には含まれていませんが、
sinatra_more という gem が用意されています。
install
shell>>
% gem install sinatra_more
<<--
standalone 利用の場合
直接 Sinatra::Base に register してしまいましょう。
ruby>>
require 'sinatra'
...
require 'sinatra_more/markup_plugin'
Sinatra::Base.register SinatraMore::MarkupPlugin
...
get '/' do
...
<<--
クラス利用の場合
該当クラスで register します。
ruby>>
require 'sinatra_more/markup_plugin'
class Application < Sinatra::Base
register SinatraMore::MarkupPlugin
end
<<--
MarkupPlugin
link_to だけでなく、全56種(ver 0.3.33 現在)ものヘルパメソッドが利用できるようになります。
以下に、よく使いそうなものを抜粋します。
ruby>>
link_to(*args, &block)
stylesheet_link_tag(*sources)
javascript_include_tag(*sources)
image_tag(url, options={})
image_path(src)
escape_html(text)
h!(text, blank_text = ' ')
content_tag(*args, &block)
tag(name, options={})
input_tag(type, options = {})
form_for(object, url, settings={}, &block)
text_field_tag(name, options={})
<<--
詳細は lib/sinatra_more/markup_plugin/*.rb を確認して下さい。
その他のPlugin
sinatra_more gem には、
MarkupPlugin 以外にも
RenderPlugin、WardenPlugin、MailerPlugin、RoutingPlugin
といったプラグインが用意されています。
利用方法は MarkupPlugin の場合と同じで、
利用したいプラグイン名を列挙していきます。
ruby>>
require 'sinatra_more/markup_plugin'
require 'sinatra_more/render_plugin'
Sinatra::Base.register SinatraMore::MarkupPlugin
Sinatra::Base.register SinatraMore::RenderPlugin
...
<<--
各プラグインの代表的なメソッドを記載します。
例えば、RenderPlugin にはみんな大好きな "partial" が入ってたりしますので、しっかりチェック®ister しましょう。
RenderPlugin
描画系プラグイン
ruby>>
partial(template, options={})
erb_template(template_path, options={})
haml_template(template_path, options={})
render_template(template_path, options={})
<<--
WardenPlugin
認証系プラグイン
ruby>>
current_user
authenticate_user!
logged_in?
authenticated?(&block)
<<--
MailerPlugin
メール関係?(使わないので未調査)
RoutingPlugin
ルーティング系プラグイン (named route?)
ruby>>
map(*args, &block)
map(:accounts).to('/accounts/url')
map(:admin, :show).to('/admin/show/:id')
map(:admin) { |namespace| namespace.map(:show).to('/admin/show/:id') }
<<--