设计注册不起作用

时间:2014-12-01 07:44:40

标签: ruby-on-rails ruby devise

当我提交用户注册时,POST参数已通过,但我收到错误消息,指出电子邮件和密码不能为空。表单值也没有填写,用户也没有进入数据库 这是我的注册视图:

<%= form_for(resource, as: resource_name, url: registration_path(resource_name), class: "register-form fts") do |f| %>
<div class="row">
<div class="col-md-3 col-lg-3 col-sm-1 col-xs-1"></div>
<div class="col-md-6 col-lg-6 col-sm-10 col-xs-10">
    <div class="column" style="text-align: center; margin: 0 auto;">
    <%= devise_error_messages! %>
    <div class="ui top attached message">
        <h3 class="ui header">Register</h3> 
        </div>
        <div class="ui large form attached segment" id="load-obj">
            <div class="two fields">
                <div class="field">
                    <%= f.text_field :firstname, "placeholder" => "First Name" %>
                </div>
                <div class="field">
                    <%= f.text_field :lastname, "placeholder" => "Last Name" %>
                </div>
            </div>
            <div class="field">
                <%= f.text_field :displayname, autocomplete: "off", "placeholder" => "Display Name" %>
            </div>
            <div class="field">
                <%= f.text_field :username, autocomplete: "off", "placeholder" => "Username" %>
            </div>
            <div class="field">
                <%= f.email_field :email, "placeholder" => "Email" %>
            </div>
            <div class="field">
                <%= f.password_field :password, autocomplete: "off", "placeholder" => "Password"  %>
            </div>
            <div class="field">
                <%= f.password_field :password_confirmation, "placeholder" => "Confirm Password", id: 'pcf'  %>
            </div>
            <%= f.submit "Sign up", class: "fluid ui green big button submit loader-detect", id: "reg_submit" %>

        </div>
        <div class="ui bottom attached message">
            <%= render "devise/shared/links" %>
        </div>
    </div>
</div>

<div class="col-md-3 col-lg-3 col-sm-1 col-xs-1"></div>
<% end %>


</div>
</div>

这是我的Registrations Controller

class RegistrationsController < Devise::RegistrationsController

    before_filter :update_sanitized_params, if: :devise_controller?

    protected

    def update_sanitized_params
        devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:username, :email, :password, :password_confirmation, :firstname, :lastname, :displayname)}
        devise_parameter_sanitizer.for(:account_update) {|u| u.permit(:firstname, :lastname, :email, :password, :password_confirmation, :current_password)}
    end
end

这是我的日志文件:

Started POST "/users" for 127.0.0.1 at 2014-12-02 16:22:57 -0800
Processing by RegistrationsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"hUFEC/J3sjj1XolGwEVCcaI1K8baF2gE4xQVDhv6CoU=", "user"=>{"firstname"=>"John", "lastname"=>"Doe", "displayname"=>"JDoe", "username"=>"jdoe", "email"=>"john@doe.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Sign up"}
WARNING: Can't mass-assign protected attributes for User: username, email, password, password_confirmation, firstname, lastname, displayname

   (0.1ms)  begin transaction
   (0.1ms)  rollback transaction
  Rendered devise/shared/_links.erb (0.4ms)
  Rendered devise/registrations/new.html.erb within layouts/application (3.1ms)
Completed 200 OK in 227ms (Views: 215.6ms | ActiveRecord: 0.2ms)

1 个答案:

答案 0 :(得分:2)

有警告

WARNING: Can't mass-assign protected attributes for User: username, email,
  password, password_confirmation, firstname, lastname, displayname

警告意味着没有使用提交的参数中的值成功分配这些属性。因此,您尝试保存的对象是一个空白对象。这就是为什么你会收到错误,说用户名和电子邮件不能为空。要解决您的问题,请查看已接受的this question答案。

相关问题