簡體   English   中英

Ruby on Rails .gsub正則表達式並渲染部分

[英]Ruby on Rails .gsub regex and render partial

我有一些字符串,我想轉換為render-partial。

例如。 我有一個@ 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'))

但是這沒有做任何正確的事情,結果只是“未定義的局部變量或方法`form_item'##:#0xb53a2810>”錯誤。

但是,如果我嘗試

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

在partial中嘗試<%= form_item%>,它會返回給我一個正確的值 - f97391de6275724201000000

如果我試試

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

它就像我想要的那樣工作 - 讓我得到一個表格模型來處理。

題:

我如何將/ * value_(。*?)* / regexp中的\\ 1值拋出到CustomForm.where(_id:'\\ 1')。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM