Faker를 사용하여 여러 샘플 사용자 만들기
5775 단어 Rails
(기본적으로 개발 환경에서 샘플 사용자를 만들 때의 처리)
먼저 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
넘기기만 하면 오케이!
Reference
이 문제에 관하여(Faker를 사용하여 여러 샘플 사용자 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mikaku/items/be721a623a9e8372fb4b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)