我如何将此表单标记转换为form_for?
<%= form_tag(contact_email_path, :method => 'post') do %>
<%= label_tag "Your email" %>
<%= text_field_tag "sender", @sender, :autofocus => true %>
<%= label_tag "Subject" %>
<%= text_field_tag "subject", @subject %>
<%= label_tag "Message" %>
<%= text_area_tag "message", @message %>
<%= submit_tag "Send Email" %>
<% end %>
答案 0 :(得分:1)
form_for
是创建用于创建或编辑资源的表单的帮助程序。
如果您在此处拥有要在数据库中创建的资源,则可以使用此方法。你在这里看到的不是创建资源,而是发送电子邮件。如果是这种情况,那么form_tag
可能是更好的选择。
但是,如果您正在尝试在数据库中创建新资源(即ContactEmail
或其他类的新实例),那么您可以这样做:
<%= form_for @contact_email do |f| %>
<%= f.label :sender, "Your email" %>
<%= f.text_field :sender, :autofocus => true %>
<%= f.label :subject %>
<%= f.text_field :subject %>
<%= f.label :message %>
<%= f.text_area :message %>
<%= f.submit "Send Email" %>
<% end %>
这假设@contact_email
是一个包含方法sender
,subject
和message
且您的路径文件中有resources :contact_email
的对象。< / p>