vendredi 17 avril 2015

Rails 3 - how to escape form_tag in render inline?

We use render inline: in view rendering:



<%= render inline: ERB.new(@erb_code).result(binding)


Here @erb_code returns a string for view code for rendering. The code worked fine until a form_tag was added to @erb_code. The error is:



(erb):8: syntax error, unexpected ')'
...@project.id), method: :get do ).to_s); _erbout.concat "\r\n\...
... ^
(erb):63: syntax error, unexpected end-of-input, expecting ')'
; _erbout.force_encoding(__ENCODING__)
^


Here is the form_tag code added:



<%= form_tag onboard_engine_configs_path(format: "csv", :project_id => @project.id), method: :get do %>
<%= label_tag(:from_release, "Release") %>
<%= select_tag(:from_release, options_for_select(releases.select('id, name').map{|r| [r.name, r.id]})) %>
<%= submit_tag 'CSV' %>
<% end %>


If rendering @erb_code directly, then there is no error.


We know the problem is with the render inline:. Tried render inline: @erb_code and the error is the same. How to escape form_tag in render inline:?


Aucun commentaire:

Enregistrer un commentaire