Ruby on Rails设计自定义表单 - 表单不在编辑时更新

时间:2015-09-06 06:46:29

标签: ruby-on-rails ruby devise erb

我正在使用Rails 4,Ruby 2.2以及最新版本的' Devise'宝石。

到目前为止,我已经生成了一个设计用户资源,并使用自定义字段(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命令为User资源创建一个视图。我通过rake检查了我的路线,以确保我正在加载" new.html.erb"文件在URL" / users / sign_up"。

我遇到的问题是当我在新的更新我的注册表单时,它不会更新!我已将代码更改为包含其他字段,但它仍显示与设计(电子邮件,密码,密码确认)相同的标准格式,即使在通过路径链接的erb文件中我已明确添加了三个字段用户名,名字和姓氏。

我已尝试编辑标题,即使没有更新!当我更新其他视图文件时,它们更新正常,因此它不是整体视图问题。

这是" 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可能会覆盖用户特定视图并发送默认视图(这可以解释没有更新),但如果确实是问题,我不知道如何解决这个问题。

提前致谢!

1 个答案:

答案 0 :(得分:0)

确定我在初始化程序中更改了范围设置,重新启动了webricks服务器,并且它开始工作