渲染rails form_tag部分时出错

时间:2019-02-27 01:10:44

标签: ruby-on-rails partial

情况如下: 我有一个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 :(得分:1)

使用render partial:代替render

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

因为render不支持本地人。

Read更多

还有另一种方法。您还可以使用yieldprovide

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