簡體   English   中英

Rails:什么是處理空params數組的好方法

[英]Rails: What's a good way to deal with empty params array

在我的一種觀點中,我有一種將數據發送到控制器的表格。

<%= form_for @user do |f| %>
  <%= f.error_messages %>

<% for committee in @committees %>
  <div>
    <%= check_box_tag "user[relevant_committee_ids][]", committee.id, @user.relevant_committees.include?(committee) %>
    <%= committee.name %>
  </div>

<% end %>
  <%= f.submit t(:save_settings) %>
<% end %>

如果表單為空,則不會生成params [:user],這將導致控制器中的以下代碼失敗:

@user.relevant_committee_ids = params[:user][:relevant_committee_ids] ||= [] 

與錯誤消息:

當您沒有想到的時候,您有一個零對象! 您可能期望使用Array的實例。 評估為nil時發生錯誤。

如果未生成params [:user],有什么好方法可以讀取空數組?

在此先感謝您的任何建議。

怎么樣

@user.relevant_committee_ids = params[:user] ? params[:user][:relevant_committee_ids] : [] 

我的嘗試是:

params[:user] ||= []
@user.relevant_committee_ids = params[:user][:relevant_committee_ids]
@user.relevant_committee_ids ||= []

通常,我發現在所有必須使用x ||= []語法的地方都足夠可讀,我必須強調指出,我用空集合代替nil值。

@user.relevant_committee_ids = params[:user].try(:[], :relevant_committee_ids) || []

暫無
暫無

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

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