Rails表单用于邮寄

时间:2014-02-01 18:47:33

标签: ruby-on-rails forms nested-forms form-for

我正在尝试构建一个预装两个模型内容的表单(两个变量被传递,显示在文本字段中)然后,不保存数据但发送改变的内容(来自文本字段)作为两个(?)变量到邮件程序类。

我已经设法从两个模型中的一个预加载数据,但我不确定form_for标记如何加载两个模型以及定位邮件程序类方法而不是在按下时更新模型实体“发送”。

如果我没有保存任何内容,我是否需要模型中的accepts_nested_attributes_for属性?

我希望有人能给我一个关键部分的小例子。万分感谢!

1 个答案:

答案 0 :(得分:1)

您可以使用fields_for以相同的形式包含其他模型。你可以在同一个form_for里面使用它。

从api docs

查看此处的示例
  <%= form_for @person do |person_form| %>
      First name: <%= person_form.text_field :first_name %>
      Last name : <%= person_form.text_field :last_name %>

      <%= fields_for @person.permission do |permission_fields| %>
        Admin?  : <%= permission_fields.check_box :admin %>
      <% end %>

      <%= f.submit %>
    <% end %>

当您从此表单提交数据时,您可以使用该数据从控制器传递到邮件程序类。 UserMailer.get_user_info(params[:name], params[:address]).send

 Creates a scope around a specific model object like #form_for, but doesn't create the form tags themselves. This makes #fields_for suitable for specifying additional model objects in the same form.

请参阅此处的文档: fields_for(record_name, record_object = nil, options = {}, &block)