2015-04-17 2 views
0

Мы используем render inline: в index вид рендеринга:Rails 3 - делают встроенный form_tag

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

Здесь @erb_code возвращает строку для index просмотра кода для визуализации. Код работал нормально до тех пор, пока form_tag не был добавлен к @erb_code. Ошибка:

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

Вот добавил form_tag код:

<%= 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 %> 

Если рендеринг @erb_code непосредственно, то нет никакой ошибки.

index.erb.html является:

<%= render partial: 'form_list', locals: {models: @onboard_engine_configs} %> 

Мы знаем, что проблема с render inline:. Пробовал render inline: @erb_code и ошибка была такой же. Как избежать form_tag в render inline:?

ответ

0

Здесь render inline работы:

<%= render inline: @erb_code, locals: {models: models} %> 

Здесь используется рендеринг вида действия (вместо от Еврорадио рубина) и переменная models снова передается в пределах locals к inline.

1

Попробуйте вложить свой form_tag в скобках

<%= form_tag(onboard_engine_configs_path(format: "csv", :project_id => @project.id), method: :get) do %> 
+0

Такая же ошибка с(). – user938363

Смежные вопросы