gpt4 book ai didi

ruby-on-rails - ruby /rails : Appending to a proc?

转载 作者:太空宇宙 更新时间:2023-11-03 16:07:49 26 4
gpt4 key购买 nike

Rails 有一个方法 form_for,它接受一个 &proc,其中包含生成的表单标签中存在的内容。例如,在 HAML 中:

= form_for @my_model do |f|
= f.label :demo_field
= f.text_field :demo_field

我很想在那个 &proc block 前面添加一些东西,以便表单呈现为

= form_for @my_model do |f|
%h1 Demo Of Breaking Into A Proc
= f.label :demo_field
= f.text_Field :demo_field

问题是,我该如何在 proc 参数前加上一些东西?我调用的方法是:

module ActionView::Helpers::FormHelper
alias_method :original_form_for, :form_for



def form_for(record, options = {}, &proc)
# Prepend to the proc block here
# ???

original_form_for(record, options, &proc)
end

结束

如果有人可以替换那个“# ???”符合解决方案(或者如果我以错误的方式解决这个问题,请提供替代方法),我将不胜感激。

最佳答案

def form_for(record, options = {}, &proc)
new_proc = proc do |*args, &block|
"some more html" + proc.call(*args, &block)
end
original_form_for(record, options, &new_proc)
end

您不能更改 Proc

关于ruby-on-rails - ruby /rails : Appending to a proc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9889526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com