Ruby Rails 设计自定义表单 -- 表单在编辑时未更新
Ruby on Rails Devise Custom Form-- Form not Updating on Edit
我现在用的是Rails4、Ruby2.2和'Devise'gem.
的最新版本
到目前为止,我已经生成了一个设计用户资源,并创建了一个带有自定义字段(firstName、lastName 等)的迁移。这很好用。
我在我的应用程序控制器上创建了一个强参数,见此处:
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :password, :email, :firstName, :lastName, :dateofBirth, :address1, :address2, :city, :state, :zip)}
end
我继续在我的终端上使用 devise 命令为用户资源创建一个视图。我通过 rake 检查了我的路线,以确保我在 URL “/users/sign_up”.
上加载 "new.html.erb" 文件
我遇到的问题是,当我去更新注册表单时,它没有更新!我已经更改了代码以包含其他字段,但它仍然显示与设计(电子邮件、密码、密码确认)相同的标准表单,即使在通过路由链接的 erb 文件中我已经明确添加了另外三个字段用于用户名和名字和姓氏。
我试过编辑 header,但还是没有更新!当我更新其他视图文件时,它们更新正常,所以这不是整体视图问题。
这是我的代码 "new.html.erb":
<h2>Sign up</h2>
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<div class="field">
<%= f.label :username %><br />
<%= f.text_field :username, autofocus: true %>
</div>
<div class="field">
<%= f.label :firstName %><br />
<%= f.text_field :firstName %>
</div>
<div class="field">
<%= f.label :email %><br />
<%= f.email_field :email %>
</div>
<div class="field">
<%= f.label :password %>
<% if @minimum_password_length %>
<em>(<%= @minimum_password_length %> characters minimum)</em>
<% end %><br />
<%= f.password_field :password, autocomplete: "off" %>
</div>
<div class="field">
<%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation, autocomplete: "off" %>
</div>
<div class="actions">
<%= f.submit "Sign up" %>
</div>
<% end %>
<%= render "users/shared/links" %>
我推测设计 gem 可能会覆盖用户特定视图并发送默认视图(这将解释没有更新),但如果这确实是问题,我不确定如何解决这个问题.
提前致谢!
好的,我更改了初始化程序中的范围设置,重新启动了 webricks 服务器,它开始工作了
我现在用的是Rails4、Ruby2.2和'Devise'gem.
的最新版本到目前为止,我已经生成了一个设计用户资源,并创建了一个带有自定义字段(firstName、lastName 等)的迁移。这很好用。
我在我的应用程序控制器上创建了一个强参数,见此处:
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :password, :email, :firstName, :lastName, :dateofBirth, :address1, :address2, :city, :state, :zip)}
end
我继续在我的终端上使用 devise 命令为用户资源创建一个视图。我通过 rake 检查了我的路线,以确保我在 URL “/users/sign_up”.
上加载 "new.html.erb" 文件我遇到的问题是,当我去更新注册表单时,它没有更新!我已经更改了代码以包含其他字段,但它仍然显示与设计(电子邮件、密码、密码确认)相同的标准表单,即使在通过路由链接的 erb 文件中我已经明确添加了另外三个字段用于用户名和名字和姓氏。
我试过编辑 header,但还是没有更新!当我更新其他视图文件时,它们更新正常,所以这不是整体视图问题。
这是我的代码 "new.html.erb":
<h2>Sign up</h2>
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<div class="field">
<%= f.label :username %><br />
<%= f.text_field :username, autofocus: true %>
</div>
<div class="field">
<%= f.label :firstName %><br />
<%= f.text_field :firstName %>
</div>
<div class="field">
<%= f.label :email %><br />
<%= f.email_field :email %>
</div>
<div class="field">
<%= f.label :password %>
<% if @minimum_password_length %>
<em>(<%= @minimum_password_length %> characters minimum)</em>
<% end %><br />
<%= f.password_field :password, autocomplete: "off" %>
</div>
<div class="field">
<%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation, autocomplete: "off" %>
</div>
<div class="actions">
<%= f.submit "Sign up" %>
</div>
<% end %>
<%= render "users/shared/links" %>
我推测设计 gem 可能会覆盖用户特定视图并发送默认视图(这将解释没有更新),但如果这确实是问题,我不确定如何解决这个问题.
提前致谢!
好的,我更改了初始化程序中的范围设置,重新启动了 webricks 服务器,它开始工作了