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'))
しかし、それは正しいことは何もせず、「#<#: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'))
それは私が望むように機能します-処理するフォームモデルを取得します。
質問:
\1 値を /*form_(.*?)*/ regexp から CustomForm.where(_id: '\1').first にスローするにはどうすればよいですか?