4

ユーザーがオンラインで簡単にレッスンや演習を作成できるテンプレート エンジンを探していました。Rails での使用にはLiquidが最も人気がある

ようです。Liquid ユーザーは Rails フォームを簡単に作成できますか?

通常、ERB でフォームを作成します。

<%= form_for(@lesson) do |f| %>
  <% if @lesson.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@lesson.errors.count, "error") %> prohibited this lesson from being saved:</h2>

      <ul>
      <% @lesson.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>
  <div>lots of fields</div>
<% end %>

Rails は、特に CSRF 保護を自動的に挿入します。Liquidでも同じことができますか?Railsフォームタグをエミュレートするために、Liquidでフィルター、タグ、および/またはブロックを作成できますか?

4

1 に答える 1

2

独自のタグブロックをLiquidに登録できますが、すぐに使用できるわけではありません。

ドキュメントを確認すると、独自のタグブロックを作成できることがわかります。

独自のタグブロックを登録できます

class LiquidForm < Liquid::Block
  def initialize(tag_name, markup, tokens)
     super
  end

  def render(context)
    form_tag("/hello_word") do 
      input_tag "hello"
    end
  end
end

Liquid::Template.register_tag('liquid_form', LiquidForm)

次に、必要なテキストを液体で解析します

text = " {% liquid_form %} Form content {% endliquid_form %} "
@template = Liquid::Template.parse(text)
于 2013-03-04T00:32:56.077 に答える