ruby-on-rails - Liquid Ruby 模板引擎可以处理 Rails 表单吗?

标签 ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 liquid ruby-on-rails-4

我一直在寻找一个模板引擎,让用户可以轻松地在线创建类(class)和练习。似乎是 Liquid是 Rails 中最常用的。 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 做同样的事情吗?我可以在 Liquid 中创建过滤器、标签和/或块来模拟 Rails 表单标签吗?

最佳答案

你可以用 Liquid 注册你自己的标签块,但它不是开箱即用的。

如果您查看 documentation ,您会注意到您可以创建自己的标签块。

您可以注册自己的标签块

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)

关于ruby-on-rails - Liquid Ruby 模板引擎可以处理 Rails 表单吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15189669/

相关文章:

ruby-on-rails - 使用设计上下文的 "super"和 "super do |u|"之间的区别

ruby-on-rails - 这些字符串叫什么?什么是挤压? ruby

ruby-on-rails-3 - 将随机 url 分配给 rails 3 中的资源

ruby-on-rails - 部分表单渲染但不显示

ruby-on-rails - 验证 rails 3.2 中的 has_many 关系

ruby-on-rails - SSL 与 Ruby on Rails

ruby-on-rails - 如何修复 "Twilio::REST::RestError"?

ruby-on-rails - 保存对象时 after_save 如何工作

ruby-on-rails - rake 数据库 :structure:dump fails under PostgreSQL/Rails 3. 2

ruby-on-rails - 创建删除事件记录的按钮时出错