情况如下:
我有一个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 } %>
但是它不起作用。我该怎么办?
答案 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更多
。还有另一种方法。您还可以使用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" %>