gpt4 book ai didi

ruby-on-rails - Ruby on Rails .gsub 正则表达式和渲染部分

转载 作者:太空宇宙 更新时间:2023-11-03 18:20:23 25 4
gpt4 key购买 nike

我有一系列字符串,我想将其转换为部分渲染。

例如。我有一个@post.content,其中包含

Lopem ipsum dolor sic amet *form_34e141443439d1000000* Lorem dolorem *form_f97391de6275724201000000*

我要处理的。

我试过了

content.gsub(/\*form_(.*?)\*/, render(partial: 'forms/render_form', object: CustomForm.where(_id: '\1').first, as: 'form_item'))

但这并没有做任何正确的事情,只会导致“#<#:0xb53a2810> 的未定义局部变量或方法‘form_item’”错误。

但如果我尝试

content.gsub(/\*form_(.*?)\*/, render(partial: 'forms/render_form', object: '\1', as: 'form_item'))

然后部分尝试 <%= form_item %>,它返回给我一个正确的值 - f97391de6275724201000000

如果我尝试

content.gsub(/\*form_(.*?)\*/, render(partial: 'forms/render_form', object: CustomForm.where(_id: 'f97391de6275724201000000').first, as: 'form_item'))

它的工作就像我想要的那样 - 给我一个要处理的表单模型。

问题:

我如何将/*form_(.*?)*/正则表达式中的\1 值抛给 CustomForm.where(_id: '\1').first ?

最佳答案

您可以使用 gsub 方法的 block 形式,其中模式匹配作为 $1 变量可用:

content.gsub(/\*form_(.*?)\*/) do |match|
render(partial: 'forms/render_form',
object: CustomForm.where(_id: $1).first, as: 'form_item'))
end

关于ruby-on-rails - Ruby on Rails .gsub 正则表达式和渲染部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19513022/

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