Faker를 사용하여 여러 샘플 사용자 만들기

5775 단어 Rails
※ 사용자 모형을 제작하고 name email password 슬롯을 제작한 상태에서 작성
(기본적으로 개발 환경에서 샘플 사용자를 만들 때의 처리)
먼저 gem 파일 만들기
gem 'faker', '1.7.3'
※ 각각 버전을 조사해 환경에 맞는 버전을 사용하세요.
bundle install
bundle update 実行
이렇게 되면 faker를 사용할 준비가 되어 샘플 제작 사용자의 Rails 퀘스트를 만들 수 있습니다
DB에서 샘플 사용자를 생성하는 Rails 작업
db/seeds.rb

User.create!(name: "Example User",
            email: "[email protected]",
            password: "foobar",
            password_confirmation: "foobar")


99.times do |n|
  name = Faker::Name.name
  email = "example-#{n+1}@railstutorial.org"
  password = "password"
  User.create!(name:  name,
              email:  email,
              password:               password,
              password_confirmation:  password
        )
end

위 코드를 사용하여 Example User 및 기타 99명의 사용자를 만듭니다.말해.
DB 재설정
rails db:migrate:reset
rails db:seed
各コマンド実行
그나저나 계속 서서 운행하면 순조롭게 진행될 수 없으니 control+c로 서버를 차단하세요.
XXXXX$ rails db:seed
rails aborted!
ActiveRecord::RecordInvalid: Validation failed: Email has already been taken
/Users/tky/environment/sample_app02/db/seeds.rb:15:in `<top (required)>'
/Users/tky/environment/sample_app02/bin/rails:9:in `require'
/Users/tky/environment/sample_app02/bin/rails:9:in `<top (required)>'
/Users/tky/environment/sample_app02/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
이런 느낌에 혼나니까.
이것만으로 샘플 사용자를 제작할 수 있습니다.
그리고views 같은 느낌으로 원하는 방식으로 표현하면 제작이 완료되었음을 확인할 수 있습니다.
views/users/XXX.html.erb
<ul class="users">
<% @users.each do |users| %>
<li>
<%= link_to users.name %>
</li>
end
</ul>

페이지 스타일


100명이 한꺼번에 뜨면 동작 지연에 영향을 줄 수 있으므로 뜨는 인원을 줄여야 한다
gem 'will_paginate', '3.1.6'
gem 'bootstrap-will_paginate', '1.0.0'
bundle install
bundle update
will view 파일paginnate 추가 방법
views/users/XXX.html.erb
<%= will_paginate %>

<ul class="users">
    <% @users.each do |users| %>
        <li>
            <%= link_to users.name %>
        </li>
    <% end %>
</ul>

<%= will_paginate %>

will_paginnate:users 보기의 코드에서 자동으로 대상을 찾을 수 있는 이 코드를 사용하여 다른 페이지에 접근하는 페이지 연결을 만듭니다.(동작을 하기 위해서는 @users에paginate 방법을 추가한 결과가 필요합니다)
コンソールで確認

irb(main):002:0> User.paginate(page: 1) ←実行してみる

 【結果】
  User Load (1.7ms)  SELECT  "users".* FROM "users" LIMIT ? OFFSET ?  [["LIMIT", 11], ["OFFSET", 0]]
   (0.2ms)  SELECT COUNT(*) FROM "users"
=> #<ActiveRecord::Relation [#<User id: 1, name: "Example User", email: "[email protected]", created_at: "2018-05-11 10:24:16", updated_at: "2018-05-11 10:24:16", password_digest: "$2a$10$RXE2CBbPephjVs3bamy.feB68DE/1zEquj97KkqG3J5...", remember_digest: nil>, #<User id: 2, name: "Mr. Betty Cruickshank", email: "[email protected]", created_at: "2018-05-
.
.
.
.
.

こんな感じにpaginateでは、:pageにデータが保存されている

콘솔에서paginate 방법이 작동하는 것을 확인했기 때문에 실제로 사용해 보십시오
controllers/users_controller.rb
def index
    # @users = User.all
    @users = User.paginate(page: params[:page]) 
end
User.all → User.paginate(page: paginate[:page])
여기서 rails 서버를 다시 시작하지 않으면nomethod error가 됩니다. 주의하세요.
2, 3분 정도 메트로이드가 있어요, 바보!!이런 상황에 빠졌기 때문에...
@users
넘기기만 하면 오케이!

좋은 웹페이지 즐겨찾기