在Ruby on Rails中:“将窗体绑定到对象form_with的:model参数允许我们将表单生成器对象绑定到模型对象。这意味着表单将作用域为该模型对象,表单的字段将填充来自该模型对象的值。来源:文章
在所描述的上下文中,“范围”是什么意思?
我知道“scope”是一个区域,其中特定的变量/常量是可见的,分别可访问的。我不确定,这意味着什么。
rur96b6h1#
你需要阅读下面的文字,该指南以下形式:
<%= form_with model: @article do |form| %> <%= form.text_field :title %> <%= form.text_area :body, size: "60x10" %> <%= form.submit %> <% end %>
输出:
<form action="/articles/42" method="post" accept-charset="UTF-8" > <input name="authenticity_token" type="hidden" value="..." /> <input type="text" name="article[title]" id="article_title" value="My Title" /> <textarea name="article[body]" id="article_body" cols="60" rows="10"> My Body </textarea> <input type="submit" name="commit" value="Update Article" data-disable-with="Update Article"> </form>
这里有几件事需要注意:
@article
article[...]
params[:article]
所以你可以看到,所有的字段名都是name="article[title]",name="article[body]"等。这意味着在后端,参数的作用域是键article: { title: "My Title", body: "My Body" }。HTML id也使用模型名称进行作用域:id="article_title"、id="article_body"等表单操作的URI根据文章ID自动填充:action="/articles/42"表单字段值与模型示例属性Map:value="My Title"、<textarea ...>My Body</textarea>等Form还检查模型示例是否持久。根据此事实,选择表单方法(POST或PATCH)和提交默认值(创建或更新你不需要明确地写出来。只需为表单使用:model键,并将属性名称传递给表单输入助手总之,在此上下文中,“scoped”意味着表单与给定的模型对象紧密集成,并且它以直接绑定到模型属性的方式操作,使用特定的键使表单参数无效
name="article[title]"
name="article[body]"
article: { title: "My Title", body: "My Body" }
id="article_title"
id="article_body"
action="/articles/42"
value="My Title"
<textarea ...>My Body</textarea>
:model
1条答案
按热度按时间rur96b6h1#
你需要阅读下面的文字,该指南
以下形式:
输出:
这里有几件事需要注意:
@article
值。@article
的相应值。article[...]
。这意味着params[:article]
将是一个包含所有这些字段值的散列。您可以在本指南的了解参数定义约定一章中阅读更多关于输入名称的意义。所以你可以看到,所有的字段名都是
name="article[title]"
,name="article[body]"
等。这意味着在后端,参数的作用域是键
article: { title: "My Title", body: "My Body" }
。HTML id也使用模型名称进行作用域:
id="article_title"
、id="article_body"
等表单操作的URI根据文章ID自动填充:
action="/articles/42"
表单字段值与模型示例属性Map:
value="My Title"
、<textarea ...>My Body</textarea>
等Form还检查模型示例是否持久。根据此事实,选择表单方法(POST或PATCH)和提交默认值(创建或更新
你不需要明确地写出来。只需为表单使用
:model
键,并将属性名称传递给表单输入助手总之,在此上下文中,“scoped”意味着表单与给定的模型对象紧密集成,并且它以直接绑定到模型属性的方式操作,使用特定的键使表单参数无效