[英]Strong parameters are not cominng from view to controller in rails
我正在从视图发送参数,并在控制器中获取强大的参数。
我在Ruby版本Ruby 2.3.1上尝试
鉴于-
<%= form_tag cardamoms_create_auction_path,:enctype =>"multipart/form-data" do %>
<div class="field">
<table>
<tr>
<td>
<%= label_tag :company %>
</td>
<td>
<%= select_tag :company_id,options_for_select(@companies.collect{|c|[c.name,c.id]}),prompt:"Select company",class:"form-control",required: true%>
</td>
</tr>
<tr>
<td>
<%= label_tag "" %>
</td>
</tr>
<tr>
<td>
<%= label_tag :auction_number %>
</td>
<td>
<%=text_field_tag :auction_number,"",class: 'form-control',required: true,placeholder: "Ex. 19" %>
</td>
</tr>
<tr>
<td>
<%= label_tag "" %>
</td>
</tr>
<tr>
<td>
<%= label_tag "auction_date" %>
</td>
<td>
<%=text_field_tag :auction_date,"", "data-provide" => 'datepicker', class: "datepicker form-control",id: 'selectDate1',placeholder: "Auction date(yyyy-mm-dd)" ,required: true%>
</td>
</tr>
<tr>
<td>
<%= label_tag "image_upload" %>
</td>
<td>
</td>
</tr>
<tr>
<td>
<%= label_tag "start_date" %>
</td>
<td>
<%=text_field_tag :start_date,"", "data-provide" => 'datepicker', class: "datepicker form-control",id: 'selectDate2',placeholder: "Start date(yyyy-mm-dd)"%>
</td>
</tr>
<tr>
<td>
<%= label_tag "" %>
</td>
</tr>
<tr>
<td>
<%= label_tag "end_date" %>
</td>
<td>
<%=text_field_tag :end_date,"", "data-provide" => 'datepicker', class: "datepicker form-control",id: 'selectDate3',placeholder: "End date(yyyy-mm-dd)"%>
</td>
</tr>
</table>
</div>
<div class="actions">
<%= submit_tag "Submit",class:"btn btn-success" ,remote: true%>
</div>
<% end %>
在控制器中-
private
def auction_params
params.permit(:company_id,:auction_number,:auction_date,:start_date,:end_date)
end
我期望在控制器中-
private
def auction_params
params.require(:auction).permit(:company_id,:auction_number,:auction_date,:start_date,:end_date)
end
如何以输入参数采用params[:auction][:company_id]
而不是params[:company_id]
的格式更改视图?
如何以输入参数采用params [:auction] [:company_id]而不是params [:company_id]格式的方式更改视图?
正如3limin4t0r
建议的那样,您可以使用form_for
或form_with
或者,您可以明确地将其设置为:
<%= select_tag :company_id,...
变
<%= select_tag "auction[company_id]",...
其他标签也一样
您应该使用form_for @object实现此目的。 正如Wiki文档所说, form_for
创建一个表单,该表单允许用户创建或更新特定模型对象的属性。 就像是:
<%= form_for(@post, url: super_posts_path) do |f| %>
...
<% end %>
应该可以。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.