3

アプリで液体プラグインを使用しています。form_for、check_box_tag などの Rails ヘルパー メソッドを使用しているときに、form_for が定義されていないというエラーが発生します。

液体プラグインを介してレールヘルパーメソッドを使用する方法を知っている人はいますか?

4

4 に答える 4

5

少し前にこれを扱っていました-通常のフィルター(必要なヘルパーメソッドを含む)を拡張するために必要なことをよりよく理解したい場合は、このRailscastが非常に役立つことがわかりました: http://railscasts.com/episodes /118-液体

基本的には、独自のフィルター ファイルをセットアップし、使用するヘルパー モジュールを含めてから、そのヘルパーを使用するメソッド (フィルター) を追加する必要があります。難しくはありません。セットアップには 1 秒しかかかりません。Ryan の例では、LiquidFilters と呼ばれる lib のモジュールをセットアップし、必要な数値ヘルパーを含め、次のように通貨フィルターを使用するようにセットアップしました。

# lib/liquid_filters.rb
module LiquidFilters
  include ActionView::Helpers::NumberHelper

  def currency(price)
    number_to_currency(price)
  end
end

次に、液体コンテンツを解析して :filters => [LiquidFilters] (使用するフィルター モジュールの配列を取得) を追加するときに覚えておくだけで、自動的に取得されます。また、この方法により、さらにカスタム フィルターを設定したり、ヘルパー フィルターを変更したりする場合に、簡単かつ直感的にそれを行うことができます。

于 2009-06-19T13:46:40.493 に答える
1

液体プラグインを介してレールヘルパーメソッドを使用する方法を知っている人はいますか?

Liquid には、フィルターと呼ばれる独自のヘルパーがあります。https://github.com/Shopify/liquid/wiki/Liquid-for-Designersを参照してください。

値を Liquid に渡す前にヘルパーを適用するか、独自のフィルターを登録して Liquid を拡張するかを決定できます ( https://github.com/Shopify/liquid/wiki/Liquid-for-Programmersを参照)。

Liquid を Rails テンプレート ハンドラーとして登録すると、Liquid はヘルパーをフィルターとして使用しようとします。

ただし、Liquid 構文を使用する必要があります。

{{ 'This is a long section of text' | truncate: 3 }}

いいえ

{{ truncate('This is a long section of text', 3) }}
于 2009-06-19T13:04:22.810 に答える
1

液体テンプレート内でlink_toを使用する代わりに(動作しません!)、インスタンスとして直接 html コードを使用できます。液体タグを使用して html コードを記述できます。

<a href="{link}">{{link_name}}</a>" 
于 2011-10-03T22:26:27.153 に答える
0

「Clots」と呼ばれる Liquid のこのプロジェクトを見てください。おそらくこの問題に対処しています(私は個人的には使用していません)。

http://github.com/ludicast/clots/tree/master

于 2009-06-19T13:01:05.467 に答える