我目前正在阅读Ruby on Raily API文档。使用助手指定关于form_w的部分: https://api.rubyonrails.org/v5.1.7/classes/ActionView/Helpers/FormHelper.html#method-i-form_with
" :scope-输入字段名前缀的作用域,以及提交的参数在控制器中的分组方式。 "
我不明白 在上下文中,什么是“范围” .
有人能解释一下,这意味着什么吗?
如文档中的示例所示,使用以下代码:
<%= form_with scope: :post, url: posts_path do |form| %> <%= form.text_field :title %> <% end %>
您将呈现以下HTML:
<form action="/posts" method="post" data-remote="true"> <input type="text" name="post[title]"> </form>
注意 name 输入上的属性:它是 post[title] 而不是仅仅 title (将其与文档中的前一个示例进行比较)。
name
post[title]
title
您可能想这样做,例如,如果在Rails控制器中,您可以更方便地检索字段的值,如下所示 params[:post][:title] 而不是简单 params[:title] . 如果您在下定义了更多字段 post 然后,在控制器中,你会把它们放进去 params[:post] 变量(例如, params[:post][:author] , params[:post][:content] )
params[:post][:title]
params[:title]
post
params[:post]
params[:post][:author]
params[:post][:content]