2017-02-03 7 views
0

私はレールが初めてです。イムは宝石Deviseと一緒に働いています。私は電子メールとパスワードを正しく設定しました。私は今ユーザ名を追加したいと思う。それでは、私がやったことだった。ROR:ユーザテーブルに列を追加する:許容されないパラメータ

rails g migration AddUserNameToUsers Username:string 

    invoke active_record 
    create db/migrate/20170203113948_add_user_name_to_users.rb 

その後:

rails db:migrate 
== 20170203113948 AddUserNameToUsers: migrating 
-- add_column(:users, :Username, :string) 
-> 0.0017s 
== 20170203113948 AddUserNameToUsers: migrated (0.0024s) 

その後、私はそれがusersテーブルに追加された確認:

sqlite> select * from users; 
13|Username|varchar|0||0 

その後、私は含まれるように工夫登録ビューを設定しましたユーザー名:

<div class="form-group"> 
       <%= f.label :email %><br /> 
       <%= f.email_field :email, autofocus: true, class: "form-control" %> 
       </div> 

       <div class="form-group"> 
       <%= f.label :Username %><br /> 
       <%= f.text_field :Username, autofocus: true, class: "form-control" %> 
       </div> 

       <div class="form-group"> 
       <%= f.label :password %> <% if @validatable %><i>(<%= @minimum_password_length %> characters minimum)</i><% end %><br /> 
       <%= f.password_field :password, autocomplete: "off", class: "form-control" %> 
       </div> 

       <div class="form-group"> 
       <%= f.label :password_confirmation %><br /> 
       <%= f.password_field :password_confirmation, autocomplete: "off", class: "form-control" %> 
       </div> 

       <div class="form-group"> 
       <%= f.submit "Sign up", class: "btn btn-primary" %> 
       </div> 
      <% end %> 

ページが来ましたフォームを送信してもユーザー名は追加されませんでした。そして、ログが表示さ:

Started POST "/users" for ::1 at 2017-02-03 12:43:40 +0000 
Processing by Devise::RegistrationsController#create as HTML 
Parameters: {"utf8"=>"✓",  "authenticity_token"=>"MfdDSafryl0mnHM3BzEtxkOoImZXUm7rfcq2sYrNaltD2S8i3SvFCRdMqam9ukEZXcY23zF/NpY/LPyj6tJm2A==", "user"=>{"email"=>"[email protected]", "Username"=>"james", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Sign up"} 
Unpermitted parameter: Username 
+0

あなたは、続くユーザー名attibuteを許可する必要がありhttp://jacopretorius.net/2014/03/adding-custom-fields-to-your-devise-user-model- in-rails-4.html、これはあなたを助けるかもしれません:) –

答えて

1
class ApplicationController < ActionController::Base 
    before_filter :configure_permitted_parameters, if: :devise_controller? 

    protected 

    def configure_permitted_parameters 
    devise_parameter_sanitizer.permit(:sign_up, keys: [:username]) 
    end 
end 
+0

ありがとうございました。私は間違ったコントローラーでこのメソッドを使い始めました。 – BigL

関連する問題