如何在表单上创建动作而不是在显示视图上打补丁 Rails

How to have create action on form instead of patch on show view Rails

一旦用户在我的网络应用程序上创建了一条记录,他就会被重定向到首页#show。

我想显示show view,还要添加create form view的部分。我怎样才能做到这一点?

为了在我的显示视图中强制执行 "create" 操作,我需要更改此表单的哪些内容?

<%= simple_form_for(@home, :html => { :class => "form-newsletter thirds" }) do |f| %>
                                                <%= f.error_notification %>
                                                <%= f.input :phone, placeholder: "Phone Number (5554440707)", label: false, input_html: { maxlength: 10, :style => 'height: 50px' }%>
                                                <%= f.input :sender_name, placeholder: "Your Name", label: false, input_html: { maxlength: 60, :style => 'height: 50px' } %>
                                                <div class="form-actions">
                                                    <%= f.submit "Place your Order", :type => :image, :src => image_path("checkout-logo-large.png") %>
                                                </div>
                                            <% end %>

出现问题是因为您将 @home 传递给已经保存记录的表单。

变化:

<%= simple_form_for(@home, ... 

收件人:

<%= simple_form_for(Home.new, ... 

这假定 Home.new 是您实例化新(未保存)模型的方式。或者,您可以更简单地将其分配给控制器中的 @home,并按原样保留表格:

@home = Home.new