簡體   English   中英

rails 4:參數丟失或值為空

[英]rails 4: param is missing or the value is empty

我有以下兩種形式

<%= form_for(@customer) do |f| %>
  <%= f.submit %>
<% end %>

第二種形式

<%= form_tag(customers_path, {:multipart => true, :method => :post } ) do%>
  <%= submit_tag I18n.t('views.import_customers_submit') %>
<% end%>

兩種形式都可以創建客戶控制器的動作。 在創建操作時,只需保存@customer對象。

白列出的參數是

def customer_params
  params.require(:customer).permit(:name)
end

現在的問題是,當我提交我的第一份表格時,我沒有收到任何錯誤。 但是當我提交第二份表格時,我得到了這個錯誤

param is missing or the value is empty: customer

錯誤指向白名單方法

def customer_params
  params.require(:customer).permit(:name)
end

我了解這是因為,對於第一種形式,params是以params [:customer] []的形式提交的,但是對於第二種形式,則不予維護。 因此,我該如何使它適用於第二種形式。 第二種形式,我要做的就是導入文件。

您的form_tag似乎沒有任何@customer數據。

您控件中的customer_params方法期望在帖子有效負載中發送customer [name]。

包括類似<%= text_field_tag(@customer.name) %> ,它應該可以工作。

詳細信息-> http://guides.rubyonrails.org/form_helpers.html#a-generic-search-form

試試下面的代碼,希望它對您有用。

<%= form_tag(customers_path(:name => @customer.name), {:multipart => true, :method => :post } ) do%>
  <%= submit_tag I18n.t('views.import_customers_submit') %>
<% end%>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM