Ruby on rails Liquid Ruby模板引擎可以处理Rails表单吗?
我一直在寻找一个模板引擎,使用户可以轻松地在线创建课程和练习。Ruby on rails Liquid Ruby模板引擎可以处理Rails表单吗?,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.2,liquid,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.2,Liquid,Ruby On Rails 4,我一直在寻找一个模板引擎,使用户可以轻松地在线创建课程和练习。似乎是Rails中最常用的模板引擎。Liquid用户可以轻松创建rails表单吗 通常,我在ERB中创建表单时使用: <%= form_for(@lesson) do |f| %> <% if @lesson.errors.any? %> <div id="error_explanation"> <h2><%= pluralize(@lesson.error
似乎是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中创建过滤器、标记和/或块来模拟Rails表单标记吗?您可以用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)
这个答案是不完整的,你如何让csrf功能工作?实际上它是完整的,你读过并尝试过代码吗?form_标记将在表单中呈现csrf标记,您可以从液体模板调用form_标记。一旦你尝试代码并检查它是否按预期工作,请告诉我,这样我可以帮助你调试问题。我已经尝试了代码,但它对我不起作用。我不久前开始问这个问题:但它搁浅了。你知道我是否需要以不同的方式添加控制器,或者你是否使用除液体宝石以外的宝石?如何在应用程序中调用render方法?我今天将检查它并为您提供一个示例项目:)
text = " {% liquid_form %} Form content {% endliquid_form %} "
@template = Liquid::Template.parse(text)