繁体   English   中英

如何要求和允许多个强参数

[英]How to require and permit multiple strong parameters

我现在尝试了几个小时,只“允许”控制器中的以下参数哈希:

{
  "utf8"=>"✓",
  "authenticity_token"=>"...",
  "article"=>{
    "title"=>"Titel Tags",
    "text"=>"Tags Tags Tags"
  },
  "tags"=>{
    "name"=>"ufos, foo, bar, aerzte"
  },
  "commit"=>"Create Article"
}

我的方法是tap

def article_params
params.tap { |article_params| article_params.require(:article).permit(:title, :text)}.tap {|tags_params| tags_params.require(:tags).permit(:name) }
end

输出仍然是不允许使用参数 - 所以我根本无法使用控制器中视图的输入,即使散列设置得很好。

<ActionController::Parameters {"utf8"=>"✓", "authenticity_token"=>"DuMUDfPFe6iFq2Jwj4gTst1nFI3JVwTCoXu/oL53TxE1cXhtK1d+WOBL4U7A3Efo2sGxr7RCHLx3LTau7SK0xg==", "article"=><ActionController::Parameters {"title"=>"Titel Tags", "text"=>"Tags Tags Tags"} permitted: false>, "tags"=><ActionController::Parameters {"name"=>"ufos, foo, bar, aerzte"} permitted: false>, "commit"=>"Create Article", "controller"=>"articles", "action"=>"create"} permitted: false>

我显然做错了什么并且违背了轨道? 我认为使用tap是一种非常聪明的方法,但显然不够聪明,无法“破解 Rails 代码”。 :)

需要帮助 !

你试过这个吗?

def article_params
  params.permit(
    :utf_8,
    :authenticity_token,
    :commit,
    tags: [:name],
    article: [:title,:text]
  )
end

这对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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