Ошибка при рендеринге рельсов - PullRequest
0 голосов
/ 27 февраля 2019

Ситуация следующая: у меня есть один form_tag, который будет отображаться внутри двух представлений, но с разными URL в каждом представлении.Пример:

<%= form_tag form_url, method: 'GET' do %>
     <%= ... %>
     <%= ... %>
     <%= submit_tag 'Submit' %>
<% end %>

Я хочу назвать это так:

На виде A:

<%= render "form_partial_name", locals: { form_url: url_A } %>

На виде B:

<%= render "form_partial_name", locals: { form_url: url_B } %>

Но это не работает.Как я могу это сделать?

1 Ответ

0 голосов
/ 27 февраля 2019

Используйте render partial: вместо render

<%= render partial: "form_partial_name", locals: { form_url: url_A } %>
<%= render partial: "form_partial_name", locals: { form_url: url_B } %>

Поскольку render не поддерживает местных жителей.

Читать more.

Есть и другой способ.Вы также можете использовать yield и provide:

<%= form_tag yield(:form_url), method: 'GET' do %>
     <%= ... %>
     <%= ... %>
     <%= submit_tag 'Submit' %>
<% end %>

и 2 различных вида:

<% provide(:form_url, url_A) %>
<%= render "form_partial_name" %>
<% provide(:form_url, url_B) %>
<%= render "form_partial_name" %>
...