Ruby on rails 将Rails 3块辅助对象包装到另一个辅助对象中
我想创建这样一个助手(我正在使用gem): 我试图打包一个块帮助器<代码> Admin。Fuffy,我们调用一些方法来输出文本,然后在中间捕获一个Erb块。 我试过各种各样的东西Ruby on rails 将Rails 3块辅助对象包装到另一个辅助对象中,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我想创建这样一个助手(我正在使用gem): 我试图打包一个块帮助器 Admin。Fuffy,我们调用一些方法来输出文本,然后在中间捕获一个Erb块。 我试过各种各样的东西 capture(f, &block) if block_given? 及 及 似乎什么都不管用 Help的使用结果如下所示: <%= admin_form_for @record, [:name, :email] do |f| %> <p><%= some_other_helper
capture(f, &block) if block_given?
及
及
似乎什么都不管用
Help的使用结果如下所示:
<%= admin_form_for @record, [:name, :email] do |f| %>
<p><%= some_other_helper %></p>
<% end %>
抱歉,没有测试它,但您可以尝试以下方法:
def admin_form_for(record, columns = nil, &block)
semantic_form_for [:admin, record] do |f|
f.semantic_errors
f.inputs *columns if columns
f.semantic_fields_for(columns, &block) if columns && block_given?
f.buttons
end
end
我知道这已经晚了一个月,但我想这就是你想要的:
def admin_form_for(record, columns = nil, &block)
with_output_buffer do
semantic_form_for [:admin, record] do |f|
f.semantic_errors
f.inputs *columns if columns
capture(f, &block) if block_given?
f.buttons
end
end
end
在这里,with_output_buffer返回一个字符串,表示传入块呈现的内容
<%= admin_form_for @record, [:name, :email] do |f| %>
<p><%= some_other_helper %></p>
<% end %>
def admin_form_for(record, columns = nil, &block)
semantic_form_for [:admin, record] do |f|
f.semantic_errors
f.inputs *columns if columns
f.semantic_fields_for(columns, &block) if columns && block_given?
f.buttons
end
end
def admin_form_for(record, columns = nil, &block)
with_output_buffer do
semantic_form_for [:admin, record] do |f|
f.semantic_errors
f.inputs *columns if columns
capture(f, &block) if block_given?
f.buttons
end
end
end