我有两种形式 - 一种使用form_for
,就像这样:
<% form_for @user do |f| %>
<%= f.text_field :name %>
<%= f.email_field :email %>
...
...
除了使用form_tag
<% form_tag send_request_path do |f| %>
<%= text_field_tag :name, '' %>
<%= email_field_tag :email, '' %>
...
...
由于所有字段都是相同的,我想将它们抽象为部分字段,但不能因为一个字段绑定到一个对象而另一个字段不绑定。最好的方法是什么?
答案 0 :(得分:0)
send_request_path发送电子邮件请求。它与用户没有直接关系。
在这种情况下,不应该干掉这两种形式。这就是所谓的“意外重复”。两个表格结果具有相同的结构偶然。
由于这两件事情没有关联,因此随着时间的推移,实施将会出现分歧的可能性很大。那你打算做什么?在共享部分中插入PropertiesService.getUserProperties()
条件?
答案 1 :(得分:0)
您可以在Partial中使用FORM代码字段。例如
您可以在一个文件中编写FORM对象,如:
<强> first_form.html.erb 强>
<%= form_for @users, url: { send_request_path } do |f| %>
<%= render partial: 'form', locals: {f: f} %>
<%end%>
<强> second_form.html.erb 强>
<%= form_for @posts, url: { send_request_path } do |f| %>
<%= render partial: 'form', locals: {f: f} %>
<%end%>
和偏见。
<强> _form.html.erb 强>(PARTIAL)
<%= f.text_field :name %>
<%= f.email_field :email %>
正如您所看到的,我使用 locals 将表单对象传递给Partial。通过这种方式,您可以为两个表单使用相同的表单字段文件。(您也可以在两个文件中使用form_tag而不是form_form。)