繁体   English   中英

强大的参数无法从视图到导轨中的控制器

[英]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_forform_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM