Liquid リファレンス

Red Hat 3scale API Management 2.9

3scale インストールに関する補足情報を提供します。

概要

本ガイドでは、3scale インストールと協調するコンポーネントについて説明します。

第1章 Liquid リファレンス

1.1. Liquid とは

Liquid はシンプルなプログラミング言語で、API プロバイダが利用可能な 3scale システムからのデータのほとんどを表示および処理するのに使用されます。Liquid は元来 Shopify が開発したもので、Web を通じて他の多くのコンテンツ管理システム (CMS) エンジンで使用されています。3scale プラットフォームでは、これを使用してサーバー側のデータを API 開発者に公開し、高いセキュリティーレベルを維持しながらデベロッパーポータルの有用性を大幅に向上させています。

1.1.1. メリットとデメリット

Liquid は、主にサーバー側のデータを取得してデベロッパーポータルのページに表示するのに使用されます。しかし、Liquid にはこれ以外にも多くの機能があります。以下の用途にも使用することができます。

  • サーバー側のデータに基づきページの DOM およびコンテンツを変更する。
  • ページ、パーシャル、およびレイアウトにロジックを追加する。
  • 開発者に送信されるメールのテンプレートを操作する。

Liquid が問題解決の最適解を提供しないケースもあります。主に、ユーザーからのインプットやページの URL 等の動的なデータを使用しなければならない場合です。

一般的なアドバイスとしては、ページにロジックを追加する手段として先ず Liquid を使用し、不可能である、または過度に複雑になることが分かったら、JavaScript に切り替える、あるいは JavaScript に Liquid を追加する (Liquid は JS との組み合わせでも適切に機能するため) ことを推奨します。

1.2. Liquid の使用方法

Liquid のマークアップには、ロジックタグとアウトプットタグの 2 種類があります。ロジックタグ (MISSING で識別) は、if 節やループ等の標準的なプログラミング言語の要素が含まれる条件付き Liquid ステートメントです。

{% if current_user %}           <!-- if the user is logged in -->
  <a href="/logout">Logout</a>  <!-- show the logout link -->
{% else %}                      <!-- if the user is not logged in -->
  <a href="/login">Login</a>    <!-- display the login link -->
{% endif %}

アウトプットタグ ({{ }} で識別) は、中かっこ間のタグの値を表示するのに使用されます。

{{ current_user.username }}     <!-- display the logged-in user's username value -->

ロジックタグに関するドキュメントは、Shopify のチュートリアル を参照してください。3scale の Liquid アウトプットタグに関する詳細なリファレンスは、「タグ」セクションおよび管理ポータルの Help > Liquid Reference セクションの両方に記載されています。

1.2.1. Liquid ドロップ、タグ、およびフィルター

3scale のデベロッパーポータルでは、以下の 3 種類の Liquid マークアップを使用することができます。

Liquid ドロップ、タグ、およびフィルターは 、「Liquid の使用方法」で説明されているロジックタグおよびアウトプットタグに類似しています

Liquid ドロップは最も基本的な構造で、ほとんどのケースで使用されます。これを使用して、ユーザー名やアプリケーション ID 等の、システムに保管されている特定の値にアクセスすることができます。インタープリターは、他のアウトプットタグと同様にこのマークアップを処理します。

一方、Liquid タグはロジックタグの一種で、より高度なカスタマイズのためにシステムの特定部分をレンダリングしたり、アクセスしたりするのに使用されます (例: レイアウト内のコンテンツのレンダリング、メールテンプレートのカスタマイズ)。

フィルターは、ドロップからの結果の見直し、値の変換、および特定のキーによるグルーピングのオプションを有効にします。標準 Liquid フィルターのグループ (Shopify の Web サイト を参照) および特殊な 3scale 内部フィルターのグループ (「Liquid リファレンス」セクションに記載) があります。

1.2.2. コンテキスト

コンテキストは、現在のページで使用可能な変数 (ドロップ) を記述します。基本セットには以下の変数が含まれます。

  • provider
  • urls
  • current_user
  • current_account
  • today

これらの変数は、メールテンプレートを除きデベロッパーポータル全体を通じてすべてのページで利用可能です。ただし、ほとんどの組み込みページでは、いくつかの追加変数を利用することができます。たとえば、ユーザーの編集フォームでは user 変数が利用可能です (current_user ではなく。ユーザーの編集ページでは、ユーザーの ID は既知の情報です)。現在のページで利用可能な変数を確認するために、特別なタグ {% debug:help %} が用意されています。使用することのできるすべての最上位変数のリストが、ページソースのコメントとして追加されます。

1.2.3. 階層

コンテキストの結果として、Liquid ドロップは階層構造で整理されます。使用可能な変数のセットは、使用できる最上位ドロップのリストを示します。これらを使用して、階層内のより深い位置にある要素にアクセスすることができます。たとえば、ログインしているユーザーのユーザー名を表示する場合は、{{ current_user.username }} と記述します。

より下層のドロップを表示するのは、これより若干複雑です。ユーザーのアプリケーションの名前だけを表示すると仮定します。リファレンスガイドを見ると、メソッド アプリケーション がアカウントドロップの一部であることが分かります。つまり、アプリケーションは単一アプリケーションのタグの配列です。ユーザーに複数のアプリケーションが許可されている場合は、ロジックタグを使用してそれぞれのアプリケーションについて処理を繰り返す必要があります。そうでなければ、アカウントの最初の (そして唯一の) アプリケーションを参照することができます。これを表示するコードは、{{ current_account.applications.first.name }} となります。

1.3. Liquid テンプレート

すべての Liquid テンプレートで以下の変数を使用することができます。

  • provider: 1 つにまとめられたすべてのサービス、プラン、および設定
  • urls: デベロッパーポータルの組み込みページ (ログイン、サインアップ) へのルート
  • current_user: 現在ログインしているユーザー のユーザー名、アドレス、および権限
  • current_account: 現在ログインしているユーザー のメッセージ、アプリケーション、およびプラン
  • today: 本日の日付

組み込みページでは、その他の変数も利用することができます (デベロッパーポータルで説明されます)。たとえば、ユーザーの編集フォームには user 変数が割り当てられています。また、アプリケーションの情報を表示する際に application 変数にアクセスすることができます。

変数の種類を知ることは本リファレンスを使用する上で重要なことですが、そのためにはページに {% debug:help %} タグを配置します。これにより利用可能なすべての変数およびその種類のリストが HTML コメントに表示されます。ただし、通常は、メソッドまたは変数の名前から容易に想像することができます。

1.4. ドロップ

1.5. タグ

1.6. フィルター

1.7. ドロップ (up)

1.7.1. Account ドロップ (up)

開発者のアカウント。メールアドレスまたは類似の情報が必要な場合は、User ドロップを参照してください。

<h2>Account organization name {{ current_account.name }}</h2>
Plan {{ current_account.bought_account_plan.name }}
Telephone {{ current_account.telephone_number }}

{{ current_account.fields_plain_text }}
{{ current_account.extra_fields_plain_text }}

{% if current_account.approval_required? %}
   <p>This account requires approval.</p>
{% endif %}

{% if current_account.credit_card_required? %}

  {% if current_account.credit_card_stored? %}
    <p>This account has credit card details stored in database.</p>
  {% else %}
    <p>Please enter your {{ 'credit card details' | link_to: urls.payment_details }}.</p>
  {% endif %}

  {% if current_account.credit_card_missing? %}
    <p>This account has no credit card details stored in database.</p>
  {% endif %}
{% endif %}

1.7.1.1. メソッド

1.7.1.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ account.errors.name | inline_errors }}
1.7.1.1.2. id

アカウントの ID を返します。

1.7.1.1.3. name

開発者のアカウントの組織名を返します。

1.7.1.1.4. vat_zero_text

VAT ゼロに関するテキストを返します。

1.7.1.1.5. vat_rate

VAT レートを返します。

1.7.1.1.6. unread_messages

未読メッセージ

1.7.1.1.7. latest_messages

最新のメッセージを返します。

1.7.1.1.8. bought_account_plan

アカウントが契約しているプランを返します。

1.7.1.1.9. bought_account_contract

契約アカウントを返します。

1.7.1.1.10. credit_card_display_number
1.7.1.1.11. credit_card_expiration_date
1.7.1.1.12. credit_card_required?

クレジットカード情報の入力が必要なアカウントかどうかを返します。

1.7.1.1.13. credit_card_stored?

アカウントにクレジットカード情報が保存されているかどうかを返します。

1.7.1.1.14. credit_card_missing?

アカウントにクレジットカード情報が保存されていないかどうかを返します。

1.7.1.1.15. timezone

このアカウントのタイムゾーンを返します。

1.7.1.1.17. on_trial?

アカウントがトライアル期間中であるかどうかを返します (有料の契約はすべてトライアル期間中でなければなりません)。

1.7.1.1.18. telephone_number

アカウントの電話番号を返します。

1.7.1.1.19. approval_required?

アカウントに承認が必要かどうかを返します。

1.7.1.1.20. created_at

アカウント作成 (サインアップ) の UNIX タイムスタンプを返します (例: タイムスタンプを JavaScript の日付に変換する)。

<script>
  var data = new Date({{ account.created_at }} * 1000);
</script>
1.7.1.1.21. full_address

法人住所、市区町村、および都道府県で構成されます。

1.7.1.1.22. applications

アカウントのアプリケーションを返します。

1.7.1.1.23. subscribed_services

ServiceContract ドロップによる配列を返します。

1.7.1.1.24. admin

このアカウントの管理ユーザーを返します。

1.7.1.1.25. extra_fields_plain_text

アカウントに対して定義された追加フィールドをプレーンテキストで返します。

1.7.1.1.26. fields_plain_text

アカウントに対して定義されたフィールドをプレーンテキストで返します。

1.7.1.1.27. extra_fields

このアカウントの追加フィールドだけを値と共に返します (例: すべての追加フィールドを表示する)。

{% for field in account.extra_fields %}
  {{ field.label }}: {{ field.value }}
{% endfor %}
1.7.1.1.28. fields

このアカウントのすべてのフィールドを値と共に返します (例: すべてのフィールドを表示する)。

{% for field in account.fields %}
  {{ field.label }}: {{ field.value }}
{% endfor %}
1.7.1.1.29. builtin_fields
1.7.1.1.30. multiple_applications_allowed?
1.7.1.1.31. billing_address

このアカウントの請求先住所を返します。

1.7.1.1.32. has_billing_address?

このアカウントに請求先住所が登録されているかどうかを返します。

1.7.1.1.33. can

パーミッションメソッドへのアクセス権限を付与します。

{% if account.can.be_deleted? %}
  <!-- do something -->
{% endif %}
1.7.1.1.34. edit_url
1.7.1.1.35. edit_ogone_billing_address_url
1.7.1.1.36. edit_payment_express_billing_address_url
1.7.1.1.37. edit_braintree_blue_credit_card_details_url
1.7.1.1.38. domain
1.7.1.1.39. upgraded?
1.7.1.1.40. requires_credit_card?
1.7.1.1.41. support_email
1.7.1.1.42. finance_support_email

1.7.2. AccountPlan ドロップ (up)

例: Liquid の AccountPlan ドロップを使用する

<p class="notice">The examples for plan drop apply here</p>

1.7.2.1. メソッド

1.7.2.1.1. selected?

プランが選択されているかどうかを返します。

{% if plan.selected? %}
  <p>You will signup to {{ plan.name }}</p>
{% endif %}
1.7.2.1.2. bought?

プランが購入されているかどうかを返します。

{% if plan.bought? %}
   <p>You are  on this plan already!</p>
{% endif %}
1.7.2.1.3. features

利用可能な機能の配列を返します。

1.7.2.1.4. setup_fee

開設費を返します。

1.7.2.1.5. name

プランの名前を返します。

<h2>We offer you a new {{ plan.name }} plan!</h2>
1.7.2.1.6. system_name

プランのシステム名を返します。

{% for plan in available_plans %}
  {% if plan.system_name == 'my_free_plan' %}

    <p>You will buy our only free plan!</p>
  {% endif %}
{% endfor %}
1.7.2.1.7. id

プランの ID を返します。

1.7.2.1.8. free?

paid でなければ、プランは無料です。paid? メソッドを参照してください。

{% if plan.free? %}
   <p>This plan is free of charge.</p>
{% else %}

     <p>Plan costs</p>
     Setup fee {{ plan.setup_fee }}
     Flat cost {{ plan.flat_cost }}

{% endif %}
1.7.2.1.10. approval_required?

プランに承認が必要かどうかを返します。

{% if plan.approval_required? %}
   <p>This plan requires approval.</p>
{% endif %}
1.7.2.1.11. flat_cost

プランの月額固定費を返します。

1.7.3. Alert ドロップ (up)

例: Liquid の Alert ドロップを使用する

<h2>Alert details</h2>
Level {{ alert.level }}
Message {{ alert.message }}
Utilization {{ alert.utilization }}

1.7.3.1. メソッド

1.7.3.1.1. level

アラートレベルは、50、80、90、100、120、150、200、300 のいずれかです。

1.7.3.1.2. message

アラートについて記述したテキストメッセージ (例: hits per minute: 5 of 5)

1.7.3.1.3. utilization

アラートのトリガーとなった実際の使用率を示す小数 (1.0 は 100% に等しい)

Used by {{ alert.utilization | times: 100 }} percent.

1.7.4. Application ドロップ (up)

例: Liquid の Application ドロップを使用する

<h2>Application {{ application.name }} ({{ application.application_id }})</h2>
<p>{{ application.description }}</p>

1.7.4.1. メソッド

1.7.4.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ application.errors.name | inline_errors }}
1.7.4.1.2. id

アプリケーションの ID を返します。

1.7.4.1.3. can_change_plan?

直接またはリクエストによりアプリケーションの変更が許可される場合は true を返します。

1.7.4.1.4. trial?

契約がまだトライアル期間中であれば true を返します。

注記: プランのトライアル期間の長さを変更しても、既存の契約に影響を及ぼしません。

1.7.4.1.5. live?
1.7.4.1.6. state

状態は以下の 3 つのいずれかです。

    - pending
    - live
    - suspended
1.7.4.1.7. remaining_trial_period_days

トライアル期間の残り日数

1.7.4.1.8. plan

アプリケーションのプランと共に plan ドロップを返します。

1.7.4.1.9. plan_change_permission_name

許可されるアクションの名前を返します。

1.7.4.1.10. plan_change_permission_warning

許可されるアクションの警告メッセンジャーを返します。

1.7.4.1.11. contract
1.7.4.1.12. admin_url

アプリケーションの admin_url を返します。

1.7.4.1.13. name

アプリケーションの名前を返します。

1.7.4.1.14. can
1.7.4.1.15. oauth
1.7.4.1.16. pending?

アプリケーションの状態が保留中の場合は true を返します。

1.7.4.1.17. buyer_alerts_enabled?
1.7.4.1.18. description

アプリケーションの説明を返します。

1.7.4.1.19. redirect_url

アプリケーションの OAuth 用リダイレクト URL を返します。

1.7.4.1.20. filters_limit

このアプリケーションで許可される参照元フィルターの量を返します。

1.7.4.1.21. keys_limit

このアプリケーションで許可されるアプリケーションキーの量を返します。

1.7.4.1.22. referrer_filters

このアプリケーションに関連付けられた参照元フィルターを返します。

1.7.4.1.23. rejection_reason

アプリケーションを拒否した理由を返します。

1.7.4.1.24. user_key

アプリケーションの user_key を返します。

1.7.4.1.25. application_id

アプリケーションの application_id を返します。

1.7.4.1.26. key

アプリケーションの ID またはユーザーキーを返します。

1.7.4.1.27. url

このアプリケーションの組み込みの詳細ビューの URL を返します。

1.7.4.1.28. edit_url

このアプリケーションの組み込みの編集ビューの URL を返します。

1.7.4.1.29. update_user_key_url
1.7.4.1.30. log_requests_url
1.7.4.1.31. alerts_url
1.7.4.1.32. application_keys_url
1.7.4.1.33. service

対象のアプリケーションが属するサービス

1.7.4.1.34. keys

アプリケーションのキーを返します。

{% case application.keys.size %}
{% when 0 %}
  Generate your application key.
{% when 1 %}
  <h4>Application key for {{ application.name }} {{ application.application_id }}</h4>
  <p>Key is: {{ application.keys.first }}</p>
{% else %}
  <h4>Application keys for {{ application.name }} {{ application.application_id }}</h4>
  <ul>
    {% for key in application.keys %}
      <li>{{ key }}</li>
    {% endfor %}
  </ul>
{% endcase %}
1.7.4.1.35. user_key_mode?
1.7.4.1.36. app_id_mode?
1.7.4.1.37. change_plan_url
1.7.4.1.38. log_requests?
1.7.4.1.39. application_keys
1.7.4.1.40. extra_fields

このアプリケーションの非表示ではない追加フィールドを値と共に返します (例: すべての追加フィールドを表示する)。

{% for field in application.extra_fields %}
  {{ field.label }}: {{ field.value }}
{% endfor %}
1.7.4.1.41. fields

このアプリケーションのすべての組み込みおよび追加フィールドを値と共に返します (例: すべてのフィールドを表示する)。

{% for field in application.fields %}
  {{ field.label }}: {{ field.value }}
{% endfor %}
1.7.4.1.42. builtin_fields

アプリケーションの組み込みフィールドだけを返します。

1.7.4.1.43. cinstance

1.7.5. ApplicationKey ドロップ (up)

1.7.5.1. メソッド

1.7.5.1.1. id
1.7.5.1.2. value
1.7.5.1.3. url
1.7.5.1.4. application

1.7.6. ApplicationPlan ドロップ (up)

1.7.6.1. メソッド

1.7.6.1.1. selected?

プランが選択されているかどうかを返します。

{% if plan.selected? %}
  <p>You will signup to {{ plan.name }}</p>
{% endif %}
1.7.6.1.2. bought?

プランが購入されているかどうかを返します。

{% if plan.bought? %}
   <p>You are  on this plan already!</p>
{% endif %}
1.7.6.1.3. features

プランの表示される機能を返します。

{% if plan == my_free_plan %}
   <p>These plans are the same.</p>
{% else %}
   <p>These plans are not the same.</p>
{% endif %}
1.7.6.1.4. setup_fee

プランの開設費を返します。

1.7.6.1.5. name

プランの名前を返します。

<h2>We offer you a new {{ plan.name }} plan!</h2>
1.7.6.1.6. system_name

プランのシステム名を返します。

{% for plan in available_plans %}
  {% if plan.system_name == 'my_free_plan' %}

    <p>You will buy our only free plan!</p>
  {% endif %}
{% endfor %}
1.7.6.1.7. id

プランの ID を返します。

1.7.6.1.8. free?

paid でなければ、プランは無料です。paid? メソッドを参照してください。

{% if plan.free? %}
   <p>This plan is free of charge.</p>
{% else %}

     <p>Plan costs</p>
     Setup fee {{ plan.setup_fee }}
     Flat cost {{ plan.flat_cost }}

{% endif %}
1.7.6.1.10. approval_required?

プランに承認が必要かどうかを返します。

{% if plan.approval_required? %}
   <p>This plan requires approval.</p>
{% endif %}
1.7.6.1.11. flat_cost

プランの月額固定費を返します。

1.7.6.1.12. metrics

プランのメトリクスを返します。

1.7.6.1.13. usage_limits

プランの使用限度を返します。

1.7.6.1.14. service

プランのサービスを返します。

1.7.7. Base ドロップ (up)

1.7.7.1. メソッド

1.7.7.1.1. login_url
1.7.7.1.2. user_identified?

1.7.8. Base ドロップ (up)

1.7.8.1. メソッド

1.7.8.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ base.errors.name | inline_errors }}
1.7.8.1.2. title

タイトルの結果を返します。

1.7.8.1.3. kind

結果の種類を返します (「topic」または「page」)。

1.7.8.1.4. url

結果のリソース URL を返します。

1.7.8.1.5. description

結果を説明する文字列を返します。

1.7.9. BillingAddressField ドロップ (up)

1.7.9.1. メソッド

1.7.9.1.1. input_name
1.7.9.1.2. label
1.7.9.1.3. choices
1.7.9.1.4. errors
1.7.9.1.5. html_id
1.7.9.1.6. hidden?
1.7.9.1.7. visible?
1.7.9.1.8. read_only?
1.7.9.1.9. name
1.7.9.1.10. value
1.7.9.1.11. required

1.7.10. Can ドロップ (up)

1.7.10.1. メソッド

1.7.10.1.1. be_updated?
1.7.10.1.2. add_referrer_filters?
1.7.10.1.3. add_application_keys?
1.7.10.1.4. regenerate_user_key?
1.7.10.1.5. regenerate_oauth_secret?
1.7.10.1.6. manage_keys?
1.7.10.1.7. delete_key?

1.7.11. Can ドロップ (up)

1.7.11.1. メソッド

1.7.11.1.1. change_plan?

1.7.12. Cas ドロップ (up)

1.7.12.1. メソッド

1.7.12.1.1. login_url
1.7.12.1.2. user_identified?

1.7.13. Contract ドロップ (up)

Plan of the contract {{ contract.plan.name }}

1.7.13.1. メソッド

1.7.13.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ contract.errors.name | inline_errors }}
1.7.13.1.2. id

ID を返します。

1.7.13.1.3. can_change_plan?

何らかの変更が可能な場合は true を返します。

1.7.13.1.4. trial?

契約がまだトライアル期間中であれば true を返します。

注記: プランのトライアル期間の長さを変更しても、既存の契約に影響を及ぼしません。

1.7.13.1.5. live?
1.7.13.1.6. state

状態は以下の 3 つのいずれかです。

    - pending
    - live
    - suspended
1.7.13.1.7. remaining_trial_period_days

トライアル期間の残り日数

1.7.13.1.8. plan

契約のプランを返します。

1.7.13.1.9. plan_change_permission_name

許可されるアクションの名前を返します。

1.7.13.1.10. plan_change_permission_warning

許可されるアクションの警告メッセンジャーを返します。

1.7.13.1.11. contract

1.7.14. Country ドロップ (up)

1.7.14.1. メソッド

1.7.14.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ country.errors.name | inline_errors }}
1.7.14.1.2. to_str
1.7.14.1.3. code
1.7.14.1.4. label

1.7.15. CountryField ドロップ (up)

1.7.15.1. メソッド

1.7.15.1.1. value

国の ID を返します。

{{ account.fields.country.value }} => 42

compare with:

{{ account.fields.country }} => 'United States'
1.7.15.1.2. name

フィールドのシステム名を返します。

1.7.15.1.3. required
1.7.15.1.4. hidden?
1.7.15.1.5. hidden
1.7.15.1.6. visible?
1.7.15.1.7. visible
1.7.15.1.8. read_only
1.7.15.1.9. errors
1.7.15.1.10. input_name
1.7.15.1.11. html_id
1.7.15.1.12. label

フィールドのラベルを返します。

{{ account.fields.country.label }}
<!-- => 'Country' -->
1.7.15.1.13. to_str

国名を返します。

{{ account.fields.country }} => 'United States'
1.7.15.1.14. choices

1.7.16. CurrentUser ドロップ (up)

1.7.16.1. メソッド

1.7.16.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ current_user.errors.name | inline_errors }}
1.7.16.1.2. admin?

ユーザーが管理者かどうかを返します。

{% if user.admin? %}
  <p>You are an admin of your account.</p>
{% endif %}
1.7.16.1.3. username

ユーザーのユーザー名を返します (html エスケープ)。

1.7.16.1.4. account

ユーザーのアカウントを返します。

1.7.16.1.5. name

ユーザーの苗字および名前を返します。

1.7.16.1.6. email

ユーザーのメールアドレスを返します。

1.7.16.1.7. password_required?

このメソッドは、組み込みのデベロッパーポータルの認証メカニズムを使用するユーザーの場合は true を返し、Janrain、CAS、またはその他のシングルサインオン方式で認証されたユーザーの場合は false を返します。

{{ if user.password_required? }}


{{ endif }}
1.7.16.1.8. sections

ユーザーがアクセスすることのできるセクションのリストを返します。

{% if user.sections.size > 0 %}
  <p>You can access following sections of our portal:</p>
   <ul>
    {% for section in user.sections %}
      <li>{{ section }}</li>
    {% endfor %}
  </ul>
{% endif %}
1.7.16.1.9. role

ユーザーのロールを返します。

1.7.16.1.10. roles_collection

ユーザーが利用可能なロールのリストを返します。

{% for role in user.roles_collection %}
  <li>
    <label for="user_role_{{ role.key }}">

      {{ role.text&nbsp;}}
    </label>
    </li>
  {% endfor %}
1.7.16.1.11. url

ユーザーのリソース URL を返します。

{{ 'Delete' | delete_button: user.url }}
1.7.16.1.12. edit_url

ユーザーを編集するための URL を返します。

{{ 'Edit' | link_to: user.edit_url, title: 'Edit', class: 'action edit' }}
1.7.16.1.13. can

現在のユーザーの権限 (設定およびユーザーのロールにより異なる) を公開します。返されたオブジェクトに対して以下のメソッドを呼び出すことができます。

  • invite_user?
  • create_application?
  • see_log_requests?
{% if current_user.can.see_log_requests? and application.log_requests? %}
   (<a href="{{ application.log_requests_url }}" class="action edit">App Request Log</a>)
{% endif %}
1.7.16.1.14. extra_fields

このユーザーの非表示ではない追加フィールドを値と共に返します (例: すべての追加フィールドを表示する)。

{% for field in user.extra_fields %}
  {{ field.label }}: {{ field.value }}
{% endfor %}
1.7.16.1.15. fields

このユーザーのすべてのフィールドを値と共に返します (例: すべてのフィールドを表示する)。

{% for field in user.fields %}
  {{ field.label }}: {{ field.value }}
{% endfor %}
1.7.16.1.16. builtin_fields

このユーザーのすべての組み込みフィールドを値と共に返します。

1.7.17. Error ドロップ (up)

データが無効なためにフォームの送信に失敗した場合、関連するモデルで errors 配列が利用可能になります。

1.7.17.1. メソッド

1.7.17.1.1. attribute

このエラーが関連するモデルの属性を返します。

{{ account.errors.org_name.first.attribute }}
<!-- org_name -->
1.7.17.1.2. message

エラーの説明を返します。

{{ account.errors.first.message }}
<!-- can't be blank -->
1.7.17.1.3. value

error が関連する属性の値を返します。

{{ account.errors.org_name.first.value }}
 <!-- => "ACME Co." -->
1.7.17.1.4. to_str

エラーの説明全体を返します(属性名を含む)。

{{ model.errors.first }}
<!-- => "Attribute can't be blank" -->

1.7.18. Errors ドロップ (up)

例: すべてのエラーを取得する

{% for error in form.errors %}
  attribute: {{ error.attribute }}
  ...
{% endfor %}

1.7.18.1. メソッド

1.7.18.1.1. empty?

エラーがなければ true を返します。

{% if form.errors == empty %}
  Congratulations! You have no errors!
{% endif %}
1.7.18.1.2. present?

何らかのエラーがあれば true を返します。

{% if form.errors == present %}
  Sorry, there were some errors.
{% endif %}

1.7.19. Feature ドロップ (up)

1.7.19.1. メソッド

1.7.19.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ feature.errors.name | inline_errors }}
1.7.19.1.2. name

機能の名前を返します。

<h2>Feature {{ feature.name }}</h2>
1.7.19.1.3. description

機能の説明を返します。

1.7.19.1.4. has_description?

機能に説明があるかどうかを返します。

{% if feature.has_description? %}
  {{ feature.description }}
{% else %}
   This feature has no description.
{% endif %}

1.7.20. Field ドロップ (up)

1.7.20.1. メソッド

1.7.20.1.1. value

フィールドの値を返します。

Name: {{ account.fields.first_name.value }}
1.7.20.1.2. name

フィールドのシステム名を返します。

1.7.20.1.3. required
1.7.20.1.4. hidden?
1.7.20.1.5. hidden
1.7.20.1.6. visible?
1.7.20.1.7. visible
1.7.20.1.8. read_only
1.7.20.1.9. errors
1.7.20.1.10. input_name

フォームの送信時に想定される HTML 入力の名前を返します。

<!-- the 'name' attribute will be 'account[country]' -->
1.7.20.1.11. html_id

HTML ID の属性として一般的に使用される一意のフィールド識別子を返します。

{{ account.fields.country.html_id }}
<!--  => 'account_country' -->
1.7.20.1.12. label

フィールドのラベルを返します。

{{ account.fields.country.label }}
<!-- => 'Country' -->
1.7.20.1.13. to_str

変数として使用されている場合は、フィールドの値を返します。

{{ account.fields.first_name }} => 'Tom'
1.7.20.1.14. choices

対象のフィールドで利用可能な選択肢があれば、その配列を返します。たとえば、fruit というフィールドの場合、レスポンスの例は ['apple', 'bannana', 'orange'] となります。

/admin/fields_definitions[admin dashboard] で選択肢を定義することができます。id および label に応答するそれぞれの配列要素は、特殊な組み込みフィールド (例: country) でない限り通常は同じです。今後の互換性のために、choice を「そのまま」出力するよりも、これらのメソッドを使用することを推奨します。

{% for choice in field.choices %}
  <select name="{{ field.input_name }}" id="{{ field.html_id }}_id"
          class="{{ field.errors | error_class }}">
  <option {% if field.value == choice %} selected {% endif %} value="{{ choice.id }}">
    {{ choice }}
  </option>
{% endfor %}

1.7.21. Flash ドロップ (up)

1.7.21.1. メソッド

1.7.21.1.1. messages

メッセージの配列を返します。

{% for message in flash.messages %}
   <p id="flash-{{ message.type }}">
     {{ message.text }}
   </p>
{% endfor %}

1.7.22. Forum ドロップ (up)

1.7.22.1. メソッド

1.7.22.1.1. enabled?

フォーラム機能が有効な場合は true を返します。

{% if forum.enabled? %}
  <a href="/forum">Check out our forum!</a>
{% endif %}
1.7.22.1.2. latest_posts

1.7.23. I18n ドロップ (up)

i18n サポートに役立つ文字列を指定します。

{{ object.some_date | date: i18n.long_date }}

1.7.23.1. メソッド

1.7.23.1.1. short_date

%b %d のエイリアス

Dec 11
1.7.23.1.2. long_date

%B %d, %Y のエイリアス

December 11, 2013
1.7.23.1.3. default_date

%Y-%m-%d のエイリアス

2013-12-11

1.7.24. Invitation ドロップ (up)

 Email: {{ invitation.email }}


<tr id="invitation_{{ invitation.id }}">
  <td> {{ invitation.email }} </td>
  <td> {{ invitation.sent_at | date: i18n.short_date }} </td>
  <td>
    {% if invitation.accepted? %}
      yes, on {{invitation.accepted_at | format: i18n.short_date }}
    {% else %}
      no
    {% endif %}
  </td>
</tr>

1.7.24.1. メソッド

1.7.24.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ invitation.errors.name | inline_errors }}
1.7.24.1.2. email

メールアドレスを返します。

1.7.24.1.3. accepted?

招待状が受理された場合は true を返します。

1.7.24.1.4. accepted_at

招待状が受理された場合は日付を返します。

{{ invitation.accepted_at | date: i18n.short_date }}
1.7.24.1.5. sent_at

作成日を返します。

{{ invitation.sent_at | date: i18n.short_date }}
1.7.24.1.6. resend_url

招待状を再送するための URL を返します。

{{ "Resend" | update_button: invitation.resend_url}}
1.7.24.1.7. url

リソース URL を返します。

{{ "Delete" | delete_button: invitation.url }}

1.7.25. Invoice ドロップ (up)

1.7.25.1. メソッド

1.7.25.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ invoice.errors.name | inline_errors }}
1.7.25.1.2. friendly_id

平易な ID を返します。

<td> {{ invoice.id }} </td>
<td> {{ invoice.name }} </td>
<td> {{ invoice.state }} </td>
<td> {{ invoice.cost }} {{ invoice.currency }} </td>
1.7.25.1.3. name

月と年で構成される文字列

1.7.25.1.4. state
1.7.25.1.5. cost

小数点以下 2 桁の数値を返します。

23.00
1.7.25.1.6. currency
1.7.25.1.7. cost_without_vat

VAT を除いたコストを返します。

1.7.25.1.8. vat_amount

VAT の額を返します。

1.7.25.1.9. exists_pdf?

PDF が生成されていれば true を返します。

1.7.25.1.10. period_begin
{{ invoice.period_begin | date: i18n.short_date }}
1.7.25.1.11. period_end
{{ invoice.period_end | date: i18n.long_date }}
1.7.25.1.12. issued_on
{{ invoice.issued_on | date: i18n.long_date }}
1.7.25.1.13. due_on
{{ invoice.due_on | date: i18n.long_date }}
1.7.25.1.15. vat_code
1.7.25.1.16. fiscal_code
1.7.25.1.17. account

AccountDrop を返します。

1.7.25.1.18. buyer_account
1.7.25.1.19. line_items

LineItemDrop の配列を返します。

{% for line_item in invoice.line_items %}
  <tr class="line_item {% cycle 'odd', 'even' %}">
    <th>{{ line_item.name }}</th>
    <td>{{ line_item.description }}</td>
    <td>{{ line_item.quantity }}</td>
    <td>{{ line_item.cost }}</td>
  </tr>
{% endfor %}
1.7.25.1.20. payment_transactions

PaymentTransactionDrop の配列を返します。

{% for payment_transaction in invoice.payment_transactions %}
  <tr>
    <td> {% if payment_transaction.success? %} Success {% else %} Failure {% endif %} </td>
    <td> {{ payment_transaction.created_at }} </td>
    <td> {{ payment_transaction.reference }} </td>
    <td> {{ payment_transaction.message }} </td>
    <td> {{ payment_transaction.amount }} {{ payment_transaction.currency }} </td>
  </tr>
{% endfor %}
1.7.25.1.21. url

請求書のリソース URL を返します。

{{ "Show" | link_to: invoice.url }}
1.7.25.1.22. pdf_url

請求書の PDF のリソース URL を返します。

{{ "PDF" | link_to: invoice.pdf_url }}

1.7.26. Janrain ドロップ (up)

1.7.26.1. メソッド

1.7.26.1.1. login_url
1.7.26.1.2. user_identified?
1.7.26.1.3. session_url
1.7.26.1.4. relying_party

1.7.27. LineItem ドロップ (up)

1.7.27.1. メソッド

1.7.27.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ line_item.errors.name | inline_errors }}
1.7.27.1.2. name
{% for line_item in invoice.line_items %}
  <tr class="line_item {% cycle 'odd', 'even' %}">
    <th>{{ line_item.name }}</th>
    <td>{{ line_item.description }}</td>
    <td>{{ line_item.quantity }}</td>
    <td>{{ line_item.cost }}</td>
  </tr>
{% endfor %}
1.7.27.1.3. description
1.7.27.1.4. quantity
1.7.27.1.5. cost

1.7.28. Message ドロップ (up)

1.7.28.1. メソッド

1.7.28.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ message.errors.name | inline_errors }}
1.7.28.1.2. id

メッセージの ID を返します。

1.7.28.1.3. subject

件名がない場合は、ボディーの一部または (no subject) の文字列のいずれかが返されます。

1.7.28.1.4. body

メッセージのボディー

1.7.28.1.5. created_at

作成日を返します。

{{ message.created_at | date: i18n.short_date }}
1.7.28.1.6. url

メッセージ詳細の URL で、受信トレイまたは送信トレイのどちらかをポイントします。

1.7.28.1.7. state

「read」または「unread」のいずれか

1.7.28.1.8. sender

送信者の名前を返します。

1.7.28.1.9. to

受取人の名前を返します。

1.7.28.1.10. recipients

1.7.29. Message ドロップ (up)

1.7.29.1. メソッド

1.7.29.1.1. type

メッセージの種類は以下のいずれかです。

  • success (現在は使用されていません)
  • info
  • warning
  • danger
1.7.29.1.2. text

1.7.30. Metric ドロップ (up)

1.7.30.1. メソッド

1.7.30.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ metric.errors.name | inline_errors }}
1.7.30.1.2. unit

メトリクスの単位を返します。

This metric is measured in {{ metric.unit | pluralize }}
1.7.30.1.3. description

メトリクスの説明を返します。

1.7.30.1.4. name

メトリクスの名前を返します。

<h4>Metric {{ metric.name }}</h4>
<p>{{ metric.description }}</p>
1.7.30.1.5. system_name

このメトリクスのシステム名を返します。

<h4>Metric {{ metric.name }}</h4>
<p>{{ metric.system_name }}</p>
1.7.30.1.6. usage_limits

メトリクスの使用限度を返します。

{% if metric.usage_limits.size > 0 %}
   <p>Usage limits of the metric</p>
   <ul>
     {% for usage_limit in metric.usage_limits %}
       <li>{{ usage_limit.period }} : {{ usage_limit.value }}</li>
     {% endfor %}
   </ul>
 {% else %}
   <p>This metric has no usage limits</p>
{% endif %}
1.7.30.1.7. pricing_rules

メトリクスの課金ルールを返します。

{% if metric.pricing_rules.size > 0 %}
  <p>Pricing rules of the metric</p>
  <ul>
  {% for pricing_rule in metric.pricing_rules %}
    <li>{{ pricing_rule.cost_per_unit }}</li>
  {% endfor %}
  </ul>

{% else %}
  <p>This metric has no pricing rules</p>
{% endif %}
1.7.30.1.8. has_parent

1.7.31. Page ドロップ (up)

1.7.31.1. メソッド

1.7.31.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ page.errors.name | inline_errors }}
1.7.31.1.2. title

ページのタイトルを返します。

<title>{{ page.title }}</title>
1.7.31.1.3. system_name

ページのシステム名を返します。

{% if page.system_name == 'my_page' %}
  {% include 'custom_header' %}
{% endif %}

1.7.32. Page ドロップ (up)

1.7.32.1. メソッド

1.7.32.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ page.errors.name | inline_errors }}
1.7.32.1.2. title
1.7.32.1.3. kind
1.7.32.1.4. url
1.7.32.1.5. description

1.7.33. Pagination ドロップ (up)

1.7.33.1. メソッド

1.7.33.1.1. page_size

全 1 ページに記載される項目数

  {% for part in pagination.parts %}
    {% if part.is_link %}
      {% case part.rel %}
      {% when 'previous' %}
        {% assign css_class = 'previous_page' %}
      {% when 'next' %}
        {% assign css_class = 'next_page' %}
      {% else %}
        {% assign css_class = '' %}
      {% endcase %}

      <a class="{{ css_class }}" rel="{{ part.rel}}" href="{{ part.url }}">{{ part.title }}</a>
    {% else %}
      {% case part.rel %}
      {% when 'current' %}
         <em class="current">{{ part.title }}</em>
      {% when 'gap' %}
         &#x2026;
      {% else %}
         {{ part.title }}
      {% endcase %}
    {% endif %}
  {% endfor %}


<!-- Outputs:
  ============================================

  <a class="previous_page" rel="prev" href="?page=7">&#x2190; Previous</a>
  <a rel="start" href="?page=1">1</a>
  <a href="?page=2">2</a>
  <a href="?page=3">3</a>
  <a href="?page=4">4</a>
  <a href="?page=5">5</a>
  <a href="?page=6">6</a>
  <a rel="prev" href="?page=7">7</a>
  <em class="current">8</em>
  <a rel="next" href="?page=9">9</a>
  <a href="?page=10">10</a>
  <a href="?page=11">11</a>
  <a href="?page=12">12</a>
  &#x2026;
  <a href="?page=267">267</a>
  <a href="?page=268">268</a>
  <a class="next_page" rel="next" href="?page=9">Next &#x2192;</a>

=======================================
-->
1.7.33.1.2. current_page

現在選択されているページ数

1.7.33.1.3. current_offset

これまでスキップした項目

1.7.33.1.4. pages

総ページ数

1.7.33.1.5. items

全ページを合わせた総項目数

1.7.33.1.6. previous

前のページ数または空

1.7.33.1.7. next

次のページ数または空

1.7.33.1.8. parts

ユーザーフレンドリーなページネーションをレンダリングするのに役立つ要素。詳細は、[[part-drop[part drop] を参照してください。

1.7.34. Part ドロップ (up)

1.7.34.1. メソッド

1.7.34.1.1. url
1.7.34.1.2. rel
1.7.34.1.3. current?
1.7.34.1.5. title
1.7.34.1.6. to_s

1.7.35. PaymentGateway ドロップ (up)

1.7.35.1. メソッド

1.7.35.1.1. braintree_blue?

現在の支払ゲートウェイが braintreepayments.com かどうかを返します。

1.7.35.1.2. authorize_net?

現在の支払ゲートウェイが authorize.Net かどうかを返します。

1.7.35.1.3. type

この支払ゲートウェイの種類を返します。

1.7.36. PaymentTransaction ドロップ (up)

1.7.36.1. メソッド

1.7.36.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ payment_transaction.errors.name | inline_errors }}
1.7.36.1.2. currency

通貨を返します。

{% for payment_transaction in invoice.payment_transactions %}
  <tr>
    <td> {% if payment_transaction.success? %} Success {% else %} Failure {% endif %} </td>
    <td> {{ payment_transaction.created_at }} </td>
    <td> {{ payment_transaction.reference }} </td>
    <td> {{ payment_transaction.message }} </td>
    <td> {{ payment_transaction.amount }} {{ payment_transaction.currency }} </td>
  </tr>
{% endfor %}
1.7.36.1.3. amount

金額を返します。

1.7.36.1.4. created_at

作成日を返します。

1.7.36.1.5. success?

成功した場合は true を返します。

1.7.36.1.6. message

トランザクションのメッセージを返します。

1.7.36.1.7. reference

リファレンスを返します。

1.7.37. PlanFeature ドロップ (up)

1.7.37.1. メソッド

1.7.37.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ plan_feature.errors.name | inline_errors }}
1.7.37.1.2. name

機能の名前を返します。

<h2>Feature {{ feature.name }}</h2>
1.7.37.1.3. description

機能の説明を返します。

1.7.37.1.4. has_description?

機能に説明があるかどうかを返します。

{% if feature.has_description? %}
  {{ feature.description }}
{% else %}
   This feature has no description.
{% endif %}
1.7.37.1.5. enabled?

1.7.38. Post ドロップ (up)

1.7.38.1. メソッド

1.7.38.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ post.errors.name | inline_errors }}
1.7.38.1.2. body

投稿のテキスト

1.7.38.1.3. topic

すべての投稿は [[topic-drop[topic] に属します。

1.7.38.1.4. created_at

この投稿が作成された日付

{{ post.created_at | date: i18n.short_date }}
1.7.38.1.5. url

トピック内のこの投稿の URL

1.7.39. Post ドロップ (up)

1.7.39.1. メソッド

1.7.39.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ post.errors.name | inline_errors }}
1.7.39.1.2. title
1.7.39.1.3. kind
1.7.39.1.4. url
1.7.39.1.5. description

1.7.40. PricingRule ドロップ (up)

1.7.40.1. メソッド

1.7.40.1.1. cost_per_unit

課金ルールの単価を返します (例: Liquid の PricingRule ドロップを使用する)。

<h2>Pricing rule</h2>
Min value {{ pricing_rule.min }}
Max value {{ pricing_rule.max }}
Cost per unit {{ pricing_rule.cost_per_unit }}
1.7.40.1.2. min

課金ルールの最小値を返します。

1.7.40.1.3. max

課金ルールの最大値を返します。

1.7.40.1.4. plan

課金ルールのプランを返します。

1.7.41. Provider ドロップ (up)

1.7.41.1. メソッド

1.7.41.1.1. name

アカウント名を返します。

Domain {{ provider.domain }}

{% if provider.multiple_applications_allowed? %}

     <p>Applications</p>
     <ul>
     {% for app in account.applications %}
       <li>{{ app.name }}</li>
     {% endfor %}
     </ul>

{% else %}
   Application {{ account.applications.first.name }}
{% endif %}

For general questions contact us at {{ provider.support_email }},
for invoice or payment related questions contact us at {{ provider.finance_support_email }}
1.7.41.1.2. payment_gateway

アカウントに関連付けられた支払いゲートウェイを返します。

1.7.41.1.3. domain

デベロッパーポータルのドメイン

1.7.41.1.4. timezone

使用するタイムゾーンを返します。管理ポータルでタイムゾーンを変更することができます。Dashboard > Account Settings の順に選択しますOverview ページで Account Details に下方向にスクロールし、Edit をクリックし、Time Zone フィールドを変更します。

1.7.41.1.5. support_email

アカウントのサポートメール

1.7.41.1.6. finance_support_email

アカウントの経理サポートメール

1.7.41.1.7. telephone_number

アカウントの電話番号を返します。

1.7.41.1.8. multiple_applications_allowed?

開発者が個別のキーや統計情報などを持つ複数のアプリケーションを持つことができる場合は True。この動作は 3scale のプランによります。

{% if provider.multiple_applications_allowed? %}

     <p>Applications</p>
     <ul>
     {% for app in account.applications %}
       <li>{{ app.name }}</li>
     {% endfor %}
     </ul>

{% else %}
   Application {{ account.applications.first.name }}
{% endif %}
1.7.41.1.9. logo_url

ロゴの URL を返します。

1.7.41.1.10. multiple_services_allowed?

3scale のプランで複数の API を個別のサービスとして管理することができる場合は True。

{% if provider.multiple_services_allowed? %}
  {% for service in provider.services %}
     Service {{ service.name }} is available.
  {% endfor %}
{% endif %}
1.7.41.1.11. finance_allowed?
1.7.41.1.12. multiple_users_allowed?

開発者アカウントに複数のログインを関連付けることができる場合は True。この動作は、3scale のプランおよび /p/admin/cms/switches[settings] でデベロッパーポータルでの表示が有効かどうかによります。

{% if provider.multiple_users_allowed? %}
  <ul id="subsubmenu">
    <li>
       {{ 'Users' | link_to: urls.users }}
    </li>
    <li>
      {{ 'Sent invitations' | link_to: urls.invitations }}
    </li>
  </ul>
{% endif %}
1.7.41.1.13. account_plans

公開されているすべてのアカウントプランを返します。

<p>We offer following account plans:</p>
<ul>
{% for plan in model.account_plans %}
  <li>{{ plan.name }} </li>
{% endfor %}
</ul>
1.7.41.1.14. services

定義されているすべてのサービスを返します。

<p>You can signup to any of our services!</p>
<ul>
{% for service in provider.services %}
  <li>{{ service.name }} <a href="/signup/service/{{ service.system_name }}">Signup!</a></li>
{% endfor %}
1.7.41.1.15. signups_enabled?

管理ポータルの Usage ルールセクションで、サインアップを有効または無効にすることができます。

1.7.41.1.16. account_management_enabled?

Usage ルールセクションで、アカウント管理を有効または無効にすることができます。

1.7.42. ReferrerFilter ドロップ (up)

1.7.42.1. メソッド

1.7.42.1.1. id
1.7.42.1.2. value
1.7.42.1.3. delete_url
1.7.42.1.4. application

1.7.43. Request ドロップ (up)

例: Liquid の Request ドロップを使用する

<h2>Request details</h2>
URI {{ request.request_uri }}
Host {{ request.host }}
Host and port {{ request.host_with_port }}

1.7.43.1. メソッド

1.7.43.1.1. request_uri

リクエストの URI を返します。

1.7.43.1.2. host_with_port

リクエストのポートと共にホストを返します。

1.7.43.1.3. host

リクエスト URL のホスト部分を返します。

1.7.43.1.4. path

リクエスト URL のパス部分を返します。

{% if request.path == '/' %}
  Welcome on a landing page!
{% else %}
  This just an ordinary page.
{% endif %}

1.7.44. Role ドロップ (up)

1.7.44.1. メソッド

1.7.44.1.1. name

システムにとって重要なロールの内部名を返します。

1.7.44.1.2. description

ロールに関する説明文を返します。

1.7.45. Search ドロップ (up)

1.7.45.1. メソッド

1.7.45.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ search.errors.name | inline_errors }}
1.7.45.1.2. query

検索された文字列を返します。

<h3>{{ search.token }}</h3>
<p>found on {{ search.total_found }} {{ search.item | pluralize }} </p>
<dl>
  {% for result in search.results %}
    <dt>
       [ {{ result.kind | capitalize}} ]
      {{ result.title | link_to: result.url }}
    </dt>
    <dd>
      {{ result.description }}
    </dd>
  {% endfor %}
</dl>
1.7.45.1.3. total_found

一致した要素の数を返します。

1.7.45.1.4. results

検索結果の配列を返します。

1.7.46. Service ドロップ (up)

1.7.46.1. メソッド

1.7.46.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ service.errors.name | inline_errors }}
1.7.46.1.2. name

サービスの名前を返します。

1.7.46.1.3. system_name

サービスのシステム名を返します。

{% case service.system_name %}
{% when 'api' %}
  API is our newest service!
{% when 'old' %}
  Unfortunately we dont allow more signups to our old service.
{% endcase %}
1.7.46.1.4. description

サービスの説明を返します。

1.7.46.1.5. subscribed?

サービスがサブスライブされているかどうかを返します。

{% if service.subscribed? %}
   <p>You already subscribed this service.</p>
{% endif %}
1.7.46.1.6. subscription

現在ログインしているユーザーがこのサービスにサブスライブしている場合は、サブスクリプション (ServiceContract ドロップ) を返します。そうでなければ Nil を返します。

{% if service.subscription %}
   Your applications for service {{ service.name }} are:
   {% for app in service.subscription.applications %}
     {{ app.name }}<br/>
   {% endfor %}
{% else %}
   <p>You are not subscribed to this.</p>
{% endif %}
1.7.46.1.7. subscribable?
1.7.46.1.8. subscribe_url
1.7.46.1.9. application_plans

サービスの 公開されている アプリケーションプランを返します。

{% for service in model.services %}
  <h4>{{ service.name }} application plans:</h4>
  <dl>
  {% for application_plan in service.application_plans %}
    <dt>{{ application_plan.name }}</dt>
    <dd>{{ application_plan.system_name }}</dd>
  {% endfor %}
  </dl>
{% endfor %}
1.7.46.1.10. service_plans

サービスの 公開されている サービスプランを返します。

<p>We offer following service plans:</p>
<dl>
{% for service in model.services %}
  {% for service_plan in service.service_plans %}
    <dt>{{ service_plan.name }}</dt>
    <dd>{{ service_plan.system_name }}</dd>
  {% endfor %}
{% endfor %}
</dl>
1.7.46.1.11. plans

サービスのアプリケーションプランを返します。

1.7.46.1.12. features

サービスの表示される機能を返します。

{% if service.features.size > 0 %}
  <p>{{ service.name }} has following features:</p>
  <ul>
  {% for feature in service.features %}
    <li>{{ feature.name }}</li>
  {% endfor %}
  </ul>
{% else %}
  <p>Unfortunately, {{ service.name }} currently has no features.</p>
{% endif %}
1.7.46.1.13. apps_identifier

設定されている認証モードに応じて、「ID」、「API key」、または OAuth 認証の「Client ID」のいずれかを返します。

{{ service.application_key_name }}
1.7.46.1.14. backend_version
1.7.46.1.15. referrer_filters_required?
1.7.46.1.16. metrics

サービスのメトリクスを返します。

<p>On {{ service.name }} we measure following metrics:</p>
<ul>
{% for metric in service.metrics %}
  <li>{{ metric.name }}</li>
{% endfor %}
</ul>
1.7.46.1.17. support_email

サービスのサポートメール

1.7.47. ServiceContract ドロップ (up)

1.7.47.1. メソッド

1.7.47.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ service_contract.errors.name | inline_errors }}
1.7.47.1.2. id
1.7.47.1.3. can_change_plan?

何らかの変更が可能な場合は true を返します。

1.7.47.1.4. trial?

契約がまだトライアル期間中であれば true を返します。

注記: プランのトライアル期間の長さを変更しても、既存の契約に影響を及ぼしません。

1.7.47.1.5. live?
1.7.47.1.6. state

状態は以下の 3 つのいずれかです。

    - pending
    - live
    - suspended
1.7.47.1.7. remaining_trial_period_days

トライアル期間の残り日数

1.7.47.1.8. plan

契約のプランを返します。

1.7.47.1.9. plan_change_permission_name

許可されるアクションの名前を返します。

1.7.47.1.10. plan_change_permission_warning

許可されるアクションの警告メッセンジャーを返します。

1.7.47.1.11. contract
1.7.47.1.12. name
1.7.47.1.13. system_name
1.7.47.1.14. change_plan_url
1.7.47.1.15. service
1.7.47.1.16. applications
1.7.47.1.17. can

対象のサブスクリプションの現在のユーザーの特定権限を公開します。

{% if subscription.can.change_plan? %}
  ...
{% endif %}

1.7.48. ServicePlan ドロップ (up)

1.7.48.1. メソッド

1.7.48.1.1. selected?

プランが選択されているかどうかを返します。

{% if plan.selected? %}
  <p>You will signup to {{ plan.name }}</p>
{% endif %}
1.7.48.1.2. bought?

プランが購入されているかどうかを返します。

{% if plan.bought? %}
   <p>You are  on this plan already!</p>
{% endif %}
1.7.48.1.3. features

プランの表示される機能を返します。

{% if plan == my_free_plan %}
   <p>These plans are the same.</p>
{% else %}
   <p>These plans are not the same.</p>
{% endif %}
1.7.48.1.4. setup_fee

プランの開設費を返します。

1.7.48.1.5. name

プランの名前を返します。

<h2>We offer you a new {{ plan.name }} plan!</h2>
1.7.48.1.6. system_name

プランのシステム名を返します。

{% for plan in available_plans %}
  {% if plan.system_name == 'my_free_plan' %}

    <p>You will buy our only free plan!</p>
  {% endif %}
{% endfor %}
1.7.48.1.7. id

プランの ID を返します。

1.7.48.1.8. free?

paid でなければ、プランは無料です。paid? メソッドを参照してください。

{% if plan.free? %}
   <p>This plan is free of charge.</p>
{% else %}

     <p>Plan costs</p>
     Setup fee {{ plan.setup_fee }}
     Flat cost {{ plan.flat_cost }}

{% endif %}
1.7.48.1.10. approval_required?

プランに承認が必要かどうかを返します。

{% if plan.approval_required? %}
   <p>This plan requires approval.</p>
{% endif %}
1.7.48.1.11. flat_cost

プランの月額固定費を返します。

1.7.48.1.12. service

例: Liquid の ServicePlan ドロップを使用する

<p class="notice">The examples for plan drop apply here</p>
Service of this plan {{ plan.service.name }}

1.7.49. TimeZone ドロップ (up)

1.7.49.1. メソッド

1.7.49.1.1. full_name
1.7.49.1.2. to_str

1.7.50. Today ドロップ (up)

1.7.50.1. メソッド

1.7.50.1.1. month

現在の月を返します (1 - 12)。

1.7.50.1.2. day

現在の日付を返します (1 - 31)。

1.7.50.1.3. year

現在の年号を返します (例: 著作権の年号を動的に作成する)。

&copy;{{ today.year }}
1.7.50.1.4. beginning_of_month

現在の月の開始日を返します。

This month began on {{ today.beginning_of_month | date: '%A' }}

1.7.51. Topic ドロップ (up)

1.7.51.1. メソッド

1.7.51.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ topic.errors.name | inline_errors }}
1.7.51.1.2. title
1.7.51.1.3. kind
1.7.51.1.4. url
1.7.51.1.5. description

1.7.52. Topic ドロップ (up)

1.7.52.1. メソッド

1.7.52.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ topic.errors.name | inline_errors }}
1.7.52.1.2. title

トピックの名前。スレッドへの最初の投稿が投稿された時点で送信されます。

1.7.52.1.3. url

1.7.53. Url ドロップ (up)

1.7.53.1. メソッド

1.7.53.1.1. to_s
1.7.53.1.2. to_str
1.7.53.1.3. title
1.7.53.1.4. current_or_subpath?

現在のページのパスが URL のものと同じか、またはその 直接のサブパス である場合(ID により拡張)は True。たとえば {{ urls.outbox }} の場合、以下のパスは true を返します。

  • /admin/sent/messages/received
  • /admin/sent/messages/received/42

しかし、以下のパスは true を返しません。

  • /admin/sent/messsages/new
  • /admin/sent/messsages/longer/subpath

「#active?」および「#current?」も参照してください。

1.7.53.1.5. current?

URL のパスが現在のパスと同じであれば True。パラメーターおよびその他のコンポーネントは考慮されません。#active? も参照してください。

{% assign url = urls.messages_inbox %}
<!-- => http://awesome.3scale.net/admin/messages/sent -->

<!-- Current page: http://awesome.3scale.net/admin/messages/sent?unread=1 -->
{{ url.current? }} => true

<!-- Current page: http://awesome.3scale.net/admin/messages -->
{{ url.current? }} => false
1.7.53.1.6. active?

現在のページがこの URL と同じメニュー構造にある場合は True。#current? も参照してください。

{% assign url = urls.messages_inbox %}
<!-- => http://awesome.3scale.net/admin/messages/sent -->

<!-- Current page: http://awesome.3scale.net/admin/messages -->
{{ url.active? }} => true

<!-- Current page: http://awesome.3scale.net/admin/messages/trash -->
{{ url.active? }} => true

<!-- Current page: http://awesome.3scale.net/admin/stats -->
{{ url.active? }} => false

1.7.54. Urls ドロップ (up)

1.7.54.1. メソッド

1.7.54.1.1. provider
1.7.54.1.2. cas_login
<a href="{{ urls.signup }}">signup here</a>
<a href="{{ urls.service_subscription }}">subscribe to a service here</a>
1.7.54.1.3. new_application
1.7.54.1.4. signup

サインアップページの URL。すべてのユーザーがアクセス可能です。

<a href="{{ urls.signup }}?{{ service_plan | param_filter }}&{{ app_plan | param_filter }}" >Signup Now!</a>
1.7.54.1.6. login
1.7.54.1.7. logout
1.7.54.1.8. forgot_password
1.7.54.1.9. service_subscription

サービスのサブスクリプションページの URL。対象はログインしているユーザーのみ。

<a href="{{ urls.service_subscription }}?{{ service_plan | param_filter }}" >
  Subscribe to service {{ service.name }}
</a>
1.7.54.1.10. compose_message

開発者が内部メッセージングシステムを介してプロバイダーに連絡することができるページの URL

1.7.54.1.11. messages_outbox

開発者が送信したメッセージのリストの URL

1.7.54.1.12. messages_trash
1.7.54.1.13. empty_messages_trash
1.7.54.1.14. credit_card_terms
1.7.54.1.15. credit_card_privacy
1.7.54.1.16. credit_card_refunds
1.7.54.1.17. users
1.7.54.1.18. personal_details

URL またはユーザーのアカウント管理が無効な場合は Nil (Usage ルールを確認してください)

1.7.54.1.19. access_details

API キーおよびその他の認証情報が含まれるページ。認証方式によって異なります。

1.7.54.1.20. payment_details
1.7.54.1.21. new_invitation

新規ユーザーを招待するページ

1.7.54.1.22. invitations

送信したすべての招待状のリスト

1.7.54.1.23. dashboard
1.7.54.1.24. applications
1.7.54.1.25. api_access_details
1.7.54.1.26. services
1.7.54.1.27. messages_inbox

受信したメッセージのリストの URL

1.7.54.1.28. stats
1.7.54.1.29. account_overview
1.7.54.1.30. account_plans
1.7.54.1.31. invoices

1.7.55. UsageLimit ドロップ (up)

例: Liquid の UsageLimit ドロップを使用する

You cannot do more than {{ limit.value }} {{ limit.metric.unit }}s per {{ limit.period }}

1.7.55.1. メソッド

1.7.55.1.1. period

使用限度の期間を返します。

1.7.55.1.2. metric

通常は hits ですが、任意のカスタムメソッドを設定することができます。

1.7.55.1.3. value

使用限度の値を返します。

1.7.56. User ドロップ (up)

<h2>User {{ user.display_name }}</h2>
Account {{ user.account.name }}
Username {{ user.username }}
Email {{ user.email }}
Website {{ user.website }}

1.7.56.1. メソッド

1.7.56.1.1. errors

送付に失敗した後にこのモデルのフォームがレンダリングされると、発生したエラーを返します。

{{ user.errors.name | inline_errors }}
1.7.56.1.2. admin?

ユーザーが管理者かどうかを返します。

{% if user.admin? %}
  <p>You are an admin of your account.</p>
{% endif %}
1.7.56.1.3. username

ユーザーのユーザー名を返します (html エスケープ)。

1.7.56.1.4. account

ユーザーのアカウントを返します。

1.7.56.1.5. name

ユーザーの苗字および名前を返します。

1.7.56.1.6. email

ユーザーのメールアドレスを返します。

1.7.56.1.7. password_required?

このメソッドは、組み込みのデベロッパーポータルの認証メカニズムを使用するユーザーの場合は true を返し、Janrain、CAS、またはその他のシングルサインオン方式で認証されたユーザーの場合は false を返します。

{% if user.password_required? %}


{% endif %}
1.7.56.1.8. sections

ユーザーがアクセスすることのできるセクションのリストを返します。

{% if user.sections.size > 0 %}
  <p>You can access following sections of our portal:</p>
   <ul>
    {% for section in user.sections %}
      <li>{{ section }}</li>
    {% endfor %}
  </ul>
{% endif %}
1.7.56.1.9. role

ユーザーのロールを返します。

1.7.56.1.10. roles_collection

ユーザーが利用可能なロールのリストを返します。

{% for role in user.roles_collection %}
  <li>
    <label for="user_role_{{ role.key }}">

      {{ role.text&nbsp;}}
    </label>
    </li>
  {% endfor %}
1.7.56.1.11. url

ユーザーのリソース URL を返します。

{{ 'Delete' | delete_button: user.url }}
1.7.56.1.12. edit_url

ユーザーを編集するための URL を返します。

{{ 'Edit' | link_to: user.edit_url, title: 'Edit', class: 'action edit' }}
1.7.56.1.13. can

パーミッションメソッドへのアクセス権限を付与します。

{% if user.can.be_managed? %}
  <!-- do something -->
{% endif %}
1.7.56.1.14. extra_fields

このユーザーの非表示ではない追加フィールドを値と共に返します (例: すべての追加フィールドを表示する)。

{% for field in user.extra_fields %}
  {{ field.label }}: {{ field.value }}
{% endfor %}
1.7.56.1.15. fields

このユーザーのすべてのフィールドを値と共に返します (例: すべてのフィールドを表示する)。

{% for field in user.fields %}
  {{ field.label }}: {{ field.value }}
{% endfor %}
1.7.56.1.16. builtin_fields

このユーザーのすべての組み込みフィールドを値と共に返します。

1.8. タグ (up)

1.8.1. braintree_customer_form タグ (up)

Braintree Blue 支払いゲートウェイに必要なデータを入力するためのフォームをレンダリングします。

1.8.2. csrf タグ (up)

クロスサイトリクエストフォージェリーのメタタグをレンダリングします。

Example: Liquid の csrf タグを使用する

  <head>
    {% csrf %}
  </head>

1.8.3. content タグ (up)

ページのボディーをレンダリングします。このタグはレイアウト内でのみ使用します。

1.8.4. content_for タグ (up)

1.8.5. debug タグ (up)

テンプレートで利用可能なすべての Liquid 変数を HTML コメントに出力します。 公開されているテンプレートから このタグを削除する ことを推奨します。

`{% debug:help %}`

1.8.6. email タグ (up)

email タグにより送信メールのヘッダーをカスタマイズすることができます。なお、このタグはメールテンプレート内でのみ利用可能です。

ccsubject 等の便利なサブタグがいくつかあり (下表を参照)、操作を簡素化することができますが、header サブタグを使用してメッセージに任意の SMTP ヘッダーを設定することもできます。

サブタグ

説明

subject

動的な件名

{% subject = 'Greetings from Example company!' %}

cc

カーボンコピー

{% cc = 'boss@example.com' %}

bcc

ブラインドカーボンコピー

{% bcc = 'all@example.com' %}

from

実際の送信者

{% from = 'system@example.com' %}

reply-to

 

{% reply-to = 'support@example.com' %}

header

カスタム SMTP ヘッダー

{% header 'X-SMTP-Group' = 'Important' %}

do_not_send

メールの破棄

{% do_not_send %}

例: 条件付きブラインドカーボンコピー

{% email %}
  {% if plan.system_name == 'enterprise' %}
     {% bcc 'marketing@world-domination.org' %}
  {% endif%}
{% endemail %}

例: メールを一切無効にする

{% email %}
  {% do_not_send %}
{% endemail %}

例: サインアップメールのフィルター

{% email %}
  {% if plan.system == 'enterprise' %}
    {% subject = 'Greetings from Example company!' %}
    {% reply-to = 'support@example.com' %}
  {% else %}
    {% do_not_send %}
  {% endif %}
{% endemail %}

1.8.7. flash タグ (up)

システムの情報やエラーメッセージをレンダリングします。

非推奨: このタグは非推奨になりました。代わりに Flash ドロップを使用してください。

例: Liquid の flash タグを使用する

   {% flash %}

1.8.9. form タグ (up)

フォームの名前に応じて、アクションおよびクラス属性を指定して form タグをレンダリングします。サポートされるフォームは以下のとおりです。

フォーム

許可されるフィールド名

スパム対策

注記

application.create

  • application[name]
  • application[description]
  • application[<any-extra-field>]

非対応

 

application.update

  • application[name]
  • application[description]
  • application[<any-extra-field>]

非対応

 

signup

  • account[org_name]
  • account[org_legaladdress]
  • account[org_legaladdress_cont]
  • account[city]
  • account[state]
  • account[zip]
  • account[telephone_number]
  • account[country_id]
  • account[<any-extra-field>]
  • account[user][username]
  • account[user][email]
  • account[user][first_name]
  • account[user][last_name]
  • account[user][password]
  • account[user][password_confirmation]
  • account[user][title]
  • account[user][<any-extra-field>]

対応

plan_ids[] の名前で 1 つまたは複数の非表示フィールドを追加して、希望するプランに直接サインアップします。現在の URL にそのような名前のパラメーターがあれば、自動的に入力フィールドに反映されます。

例: アプリケーションを作成するためのフォーム

{% form 'application.create', application %}


   {{ application.errors.name | inline_errors }}


{% endform %}

1.8.10. latest_forum_posts タグ (up)

最新のフォーラムの投稿を集めた HTML テーブル

非推奨: このタグの代わりに forum ドロップを使用してください。

例: Liquid の latest_forum_posts タグを使用する

{% latest_forum_posts %}

1.8.11. latest_messages タグ (up)

ユーザーへの最新のメッセージが含まれる html スニペットをレンダリングします。

例: Liquid の latest_messages タグを使用する

{% latest_messages %}

1.8.13. menu タグ (up)

非推奨: このタグは非推奨になりました。代わりに「{% include "menu" %}」を使用してください

1.8.14. oldfooter タグ (up)

フッターの html スニペットをレンダリングします。

非推奨: このタグは非推奨になりました。代わりに、デベロッパーポータルのパーシャルを使用してください。

1.8.15. plan_widget タグ (up)

アプリケーションプランの見直しや変更を行うためのウィジェットが含まれます。

{% if application.can_change_plan? %}
  <a href="#choose-plan-{{ application.id }}"
     id="choose-plan-{{application.id}}">
    Review/Change
  </a>
  {% plan_widget application %}
{% endif %}

1.8.16. portlet タグ (up)

このタグにはシステム名によるポートレットが含まれます。

1.8.17. submenu タグ (up)

ログインしているユーザーのサブメニューの html スニペットをレンダリングします。

非推奨: このタグは非推奨になりました。代わりに「submenu」のパーシャルを使用してください。

例: Liquid の submenu タグを使用する

   {% submenu %}

1.8.18. 3scale_essentials タグ (up)

1.8.19. user_widget タグ (up)

ユーザーのウィジェット html スニペットをレンダリングします。

非推奨: このタグは非推奨になりました。代わりに、デベロッパーポータルのパーシャルを使用してください。

例: Liquid の user_widget タグを使用する

   {% user_widget %}
    <p class="notice">If you are logged in you see profile related links above.</p>
    <p class="notice">If you are not login you are invited to login or signup.</p>

1.9. フィルター (up)

1.9.1. FormHelpers フィルター (up)

1.9.1.1. error_class フィルター

引数が空でなければエラークラスを出力します (例: error_class を使用してエラークラスの出力を表示する)。

1.9.1.2. inline_errors フィルター

エラーフィールドをパラグラフにインラインで出力します (例: inline_errors を使用してエラーをインラインで表示する)。

{{ form.errors.description | inline_errors }}

1.9.2. ParamFilter フィルター (up)

1.9.2.1. to_param フィルター

可能であれば、指定されたドロップを URL パラメーターに変換します。例: Liquid の to_param フィルターを使用する

<h2>Signup to a service</h2>
<a href="{{ urls.signup }}?{{ service | to_param }}">Signup to {{ service.name }}</a>

1.9.3. Common フィルター (up)

1.9.3.1. group_by フィルター

何らかのキーでコレクションをグループ化します (例: サービスでアプリケーションをグループ化する)。

{% assign grouped = applications | group_by: 'service' %}
{% for group in grouped %}
  Service: {{ group[0 }}
  {% for app in group[1] %}
    Application: {{ app.name }}
  {% endfor %}
{% endfor %}

1.9.3.2. any フィルター

コレクションのいずれかの文字列がパラメーターと一致する場合は True (例: 現在のアカウントに保留中のアプリケーションはあるか)

{% assign has_pending_apps = current_account.applications | map: 'state' | any: 'live' %}

1.9.3.4. javascript_include_tag フィルター

Javascript インクルードタグ

1.9.3.5. image_tag フィルター

パラメーターを src 属性として使用してタグを出力します。

{{ 'http://example.com/cool.gif' | image_tag }}
## =>

1.9.3.6. mail_to フィルター

メールアドレスを「mailto」リンクに変換します。

{{ 'me@there.is' | mail_to }}
## => <a href="mailto:me@there.is">me@there.is</a>

1.9.3.7. html_safe フィルター

コンテンツを HTML セーフと識別し、エスケープされないようにします。

1.9.3.8. pluralize フィルター

単語を複数形に変換します。

1.9.3.9. delete_button フィルター

URL 上に存在するリソースを削除するボタンを生成します。1 番目のパラメーターは URL で、2 番目のパラメーターはタイトルです。3 番目のパラメーターとして、さらに HTML タグ属性を追加することもできます。

{{ 'Delete Message' | delete_button: message.url, class: 'my-button' }}

1.9.3.10. delete_button_ajax フィルター

AJAX を使用して、URL 上に存在するリソースを削除するボタンを生成します。1 番目のパラメーターは URL で、2 番目のパラメーターはタイトルです。

{{ 'Delete Message' | delete_button_ajax: message.url }}

1.9.3.11. update_button フィルター

URL 上に存在するリソースを「更新する」(HTTP PUT リクエスト) ボタンを生成します。1 番目のパラメーターは URL で、2 番目のパラメーターはタイトルです。3 番目のパラメーターとして、さらに HTML タグ属性を追加することもできます。

{{ 'Resend' | update_button: message.url, class: 'my-button' }}

1.9.3.12. create_button フィルター

URL 上に存在するリソースを作成するボタンを生成します。1 番目のパラメーターは URL で、2 番目のパラメーターはタイトルです。

{{ 'Create Message' | create_button: message.url }}

1.9.3.13. create_button_ajax フィルター

1.9.3.14. regenerate_oauth_secret_button フィルター