我如何知道要编辑哪个文件以及如何从此错误消息中进行操作?
How do I know what file to edit and what to do from this error message?
我在 rails/devise gem 的基础上添加了用户 table 的列名。当我单击显示用户列表的管理选项卡时,然后单击用户名以打开该用户配置文件的编辑页面。我收到以下消息。
显示 ~/rails/blog/app/views/users/_user.html.erb 第 8 行出现的位置:
undefined method `name_field' for #<ActionView::Helpers::FormBuilder:0x007fc716efd730>
Extracted source (around line #8):
6
7
8
9
10
11
<div class="field">
<%= f.label :name %><br />
<%= f.name_field :name, autofocus: true, autocomplete: "name" %>
</div>
<div class="field">
Trace of template inclusion: app/views/users/edit.html.erb
我尝试添加:
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up) { |u| u.permit(:name, :email, :password) }
devise_parameter_sanitizer.permit(:account_update) { |u| u.permit(:name, :email, :password, :current_password) }
devise_parameter_sanitizer.permit(:edit_profile) { |u| u.permit(:name, :email, :password, :current_password) }
到应用程序控制器,但仍然出现相同的错误。
如何弄清楚在哪里进行修改以使rails理解name_field是关于名称的字段(是的,我查看了迁移和名称在架构中并已迁移)。
如何让它接受该字段作为定义的字段?我无法弄清楚创建那个 name_field 的巫术,所以我看不到在哪里进行更改。
我使用脚手架创建了用户管理页面。为什么没有正确创建它?
name_field
不是有效的表单助手,因为 Rails 不会根据列名动态生成表单助手。铁路form helpers, for the most part, are based off of valid HTML5 input types。
所以当你在你的设计表格中看到这样的东西时......
<%= f.email_field :email %>
f.email_field
引用电子邮件 HTML 输入类型,:email
引用属性。上面的助手生成 html...
<input type="email" name="user[email]">
所以,您的表单字段应该使用 text_field
而不是...
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name, autofocus: true, autocomplete: "name" %>
</div>
我在 rails/devise gem 的基础上添加了用户 table 的列名。当我单击显示用户列表的管理选项卡时,然后单击用户名以打开该用户配置文件的编辑页面。我收到以下消息。
显示 ~/rails/blog/app/views/users/_user.html.erb 第 8 行出现的位置:
undefined method `name_field' for #<ActionView::Helpers::FormBuilder:0x007fc716efd730>
Extracted source (around line #8):
6
7
8
9
10
11
<div class="field">
<%= f.label :name %><br />
<%= f.name_field :name, autofocus: true, autocomplete: "name" %>
</div>
<div class="field">
Trace of template inclusion: app/views/users/edit.html.erb
我尝试添加:
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up) { |u| u.permit(:name, :email, :password) }
devise_parameter_sanitizer.permit(:account_update) { |u| u.permit(:name, :email, :password, :current_password) }
devise_parameter_sanitizer.permit(:edit_profile) { |u| u.permit(:name, :email, :password, :current_password) }
到应用程序控制器,但仍然出现相同的错误。
如何弄清楚在哪里进行修改以使rails理解name_field是关于名称的字段(是的,我查看了迁移和名称在架构中并已迁移)。
如何让它接受该字段作为定义的字段?我无法弄清楚创建那个 name_field 的巫术,所以我看不到在哪里进行更改。
我使用脚手架创建了用户管理页面。为什么没有正确创建它?
name_field
不是有效的表单助手,因为 Rails 不会根据列名动态生成表单助手。铁路form helpers, for the most part, are based off of valid HTML5 input types。
所以当你在你的设计表格中看到这样的东西时......
<%= f.email_field :email %>
f.email_field
引用电子邮件 HTML 输入类型,:email
引用属性。上面的助手生成 html...
<input type="email" name="user[email]">
所以,您的表单字段应该使用 text_field
而不是...
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name, autofocus: true, autocomplete: "name" %>
</div>