簡體   English   中英

使用 Rails 強參數聲明一個必需的數組參數

[英]Declare a required array parameter using Rails Strong Params

在我的Rails控制器我想需要一個參數, emails 它必須是一個數組。

這是允許的。

emails[]=foo@bar.com&emails[]=up@down.com

這是不允許的。

emails=foo@bar.com

params.require(:emails)將允許兩者。 前者是一個數組。 后者作為字符串。 這是個問題。

params.permit(emails: [])不需要emails參數。

params.require(:emails).permit([])不起作用,因為params.require(:emails)變得聰明並返回一個數組,而不是 ActionController::Parameters。

我如何允許emails[]=...並禁止emails=...

就像 tadman 所說的,篩選是強參數最常做的。

你可以看看葡萄,也許它可以為你指明一些方向來解決你的顧慮

  desc "API demo", {}
  params do
    requires :id, type: Integer, desc: 'ID'
    requires :name, type: Boolean, desc: 'xxx'
  end

如果您向它傳遞了意外類型的參數,則會收到錯誤消息

暫無
暫無

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

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