ruby-日記
ちょうどrubyを学ぶことを始めて最近ruby on railsのフレームワークで1つの简単な小さいホームページをして、最も简単なのは登录と登录の问题で、见たところ简単な机能は私のような初心者に対しても迷うことができるかもしれなくて、ネット上で多くのオープンソースの资料が私达に学ぶことができます.
まず、私たちのviewに登録して登録ページsinupを作成します.html.Erbは、対応するコントローラとルーティング、およびデータベースフォームを確立します.
パスワードのフィールドはこのように暗号化されたフィールドです結局管理者でも明文のパスワードが暗号化されたパスワードがpassword_に保存されているのを見ることはできないと思います.digestフィールドもちろん最后に忘れないで
データベースの移行
対応するルーティングusers対応viewのフォルダの名前を追加
ユーザーへcontroller.rb中
これらの内容を追加
ルーティングにリソースルーティングを追加
対応する登録ページに金の2つのフォームを追加します
さらにスタイルapp/assets/stylesheets/sections/usersを追加します.css.scss
ここで止まって、このページを見て、バックグラウンドにどんなコードがあるか考えてみましょう.パスワードとパスワードの確認項目が一致し、パスワードがデータベースに格納されている場合は暗号化などのタスクを手書きで行うのは面倒ですが、Railsにはhas_が内蔵されています.secure_passwordという方法.
has_の使用secure_password
has_を開くsecure_passwordのドキュメントは、使用するには2つの前提条件があることがわかります.1つ目は、GemfileにBcryptを追加することです.2つ目は、usersという表にpassword_があることです.digestというフィールドは、この前に生成されました.
ユーザーへrbで、追加
/signupのフォームに内容を記入すると、users#createが見つからないのでusers_controller.rbで、追加
これで登録に成功しました.データベースで確認
パスワードは暗号化された形式で保存されていることがわかります.
これにより,ユーザ登録が成功したと考えられる.
まず、私たちのviewに登録して登録ページsinupを作成します.html.Erbは、対応するコントローラとルーティング、およびデータベースフォームを確立します.
rails g controller users signup
rails g model user name:string email:string password_digest:string
パスワードのフィールドはこのように暗号化されたフィールドです結局管理者でも明文のパスワードが暗号化されたパスワードがpassword_に保存されているのを見ることはできないと思います.digestフィールドもちろん最后に忘れないで
rake db:migrate
データベースの移行
get "signup" => "users#signup", :as => "signup"
対応するルーティングusers対応viewのフォルダの名前を追加
ユーザーへcontroller.rb中
def signup
@user = User.new
end
これらの内容を追加
ルーティングにリソースルーティングを追加
resources :users, only: [:create]
対応する登録ページに金の2つのフォームを追加します
<div class="signup-form-container clearfix">
<div class="signup-form">
<%= form_for @user do |f| %>
<dl class="form">
<dt><%= f.label :name, " " %></dt>
<dd><%= f.text_field :name %></dd>
</dl>
<dl class="form">
<dt><%= f.label :email %></dt>
<dd><%= f.text_field :email %></dd>
</dl>
<dl class="form">
<dt><%= f.label :password, " " %></dt>
<dd><%= f.password_field :password %></dd>
</dl>
<dl class="form">
<dt><%= f.label :password_confirmation, " " %></dt>
<dd><%= f.password_field :password_confirmation %></dd>
</dl>
<p><%= f.submit " ", :class => "signup-button btn btn-primary" %></p>
<% end %>
</div>
</div>
さらにスタイルapp/assets/stylesheets/sections/usersを追加します.css.scss
.signup-form-container, .login-form-container{
width: 670px;
margin: 50px auto;
border:1px solid #ddd;
padding: 2em;
.signup-form, .login-form {
width: 100%;
}
.signup-button, .login-button {
padding: 13px;
margin-top: 15px;
width: 100%;
}
}
ここで止まって、このページを見て、バックグラウンドにどんなコードがあるか考えてみましょう.パスワードとパスワードの確認項目が一致し、パスワードがデータベースに格納されている場合は暗号化などのタスクを手書きで行うのは面倒ですが、Railsにはhas_が内蔵されています.secure_passwordという方法.
has_の使用secure_password
has_を開くsecure_passwordのドキュメントは、使用するには2つの前提条件があることがわかります.1つ目は、GemfileにBcryptを追加することです.2つ目は、usersという表にpassword_があることです.digestというフィールドは、この前に生成されました.
ユーザーへrbで、追加
rails c
u = User.first
has_secure_password
/signupのフォームに内容を記入すると、users#createが見つからないのでusers_controller.rbで、追加
ef create
user = User.new(user_params)
user.save
redirect_to :root
end
private
def user_params
params.require(:user).permit!
end
これで登録に成功しました.データベースで確認
rails c
u = User.first
パスワードは暗号化された形式で保存されていることがわかります.
これにより,ユーザ登録が成功したと考えられる.