我正在开发Ruby on Rails应用程序,并设计了一个表单。
我有两个按钮的形式。
*Generate Plot按钮发起GET请求
- 启动POST请求的保存按钮。
GET请求工作正常,我可以直接通过在控制器的示例变量中保存参数值来对参数值进行操作。
但是,我还希望在单击“保存”按钮时,表单将表单参数保存到模型中。
我正在努力做到这一点,我也尝试过一些方法,但我不确定我的思维过程是否正确。
下面是表单代码:
形式:
<%= form_with url: home_homepage_path, method: :get do |f| %>
<div class="row">
<div class="form-group col-6">
<b>LOWER SPECIFICATION LIMIT (LSL):</b>
<%= f.number_field :lower_specification_limit, placeholder: "Enter lower specification limit", class: 'form-content form-content w-100 p-1' %>
</div>
<div class="form-group col-6">
<b>UPPER SPECIFICATION LIMIT (USL):</b>
<%= f.number_field :upper_specification_limit, placeholder: "Enter upper specification limit", class: 'form-content form-content w-100 p-1' %>
</div>
</div>
<div class="row">
<div class="form-group col-12">
<b>PROCESS TIME:</b>
<%= f.text_field :process_time_array, multiple: true, placeholder: "Enter process time. This value could be an array.", class: 'form-content form-content w-100 p-1' %>
</div>
</div>
<br/>
<div class="actions">
<%= f.submit 'Generate Plot', class: 'btn btn-block btn-outline-dark rounded-0' %>
<%= link_to "SAVE", home_save_plot_path, method: :post , class: 'btn btn-block btn-outline-dark rounded-0' %>
</div>
<% end %>
我试图将这些表单参数传递给控制器中的一个方法,以便将数据保存到操作模型中。我还在控制器中定义了一个方法,如下所示。
def save_plot
@operation = Operation.new
@operation = Operation.new(params[:upper_specification_limit, :lower_specification_limit, :process_time_array])
@operation.save
end
我也提到了路线如下:
post 'home/save_plot'
观察结果:
参数数据未保存到表单中。只有“created_at”和“updated_at”会被保存。
1条答案
按热度按时间ohfgkhjo1#
有你需要的任意多个按钮:
也许你的路线上的房子越少越好:
现在,也许你没有一个
Plot
模型,但是绘制图听起来像一个PlotsController
工作:添加
preview
操作:当你点击generate时,
plot_preview
帧将被更新为: