티스토리 뷰
안녕하세요 강정호입니다. 이번 포스팅에서는 블로그에 가입한 모든 회원을 리스트로 보여주는 기능을 구현해보겠습니다.
1단계 : 라우터와 UserController에 메서드 생성
라우터
GET /users(.:format) users#index
라우터가 위와 같이 설정되어 있기 때문에 UserController에 index 메서드를 생성하여 요청을 받을 수 있도록 합니다.
class UsersController < ApplicationController
def index
@users = User.all
end
모든 User 객체를 DB로부터 받아옵니다. 이를 @users에 할당하고 users 폴더의 index.html.erb 페이지에 전달합니다.
2단계 : 사용자 리스트 화면 생성
index.html.erb 의 소스코드는 다음과 같습니다.
<h1 align = "center">All Alpha Bloggers</h1>
<div align="center">
<%= @users.each do |user| %>
<ul class="listing">
<div class="row">
<div class = "well col-md-4 col-md-offset-4">
<li><%= link_to gravatar_for(user), user_path(user) %></li>
<li>
<%= link_to user.username, user_path(user) %>
</li>
<li>
<small><%= pluralize(user.articles.count, "article") if user.articles %></small>
</li>
</div>
</div>
</ul>
<%end %>
- @users.each do |user| : Controller로부터 List 형태로 user를 받았기 때문에 반복문을 돌려 유저가 리스트로 보일 수 있도록 합니다.
- <%= link_to gravatar_for(user), user_path(user) %>
- <%= link_to user.username, user_path(user) %>
위의 코드에서 링크를 주는데 왜 gravatar_for, user.username을 앞에 입력하는지 몰랐는데 그 차이를 말해드릴게요.
[gravatar_for(user)와 user.username이 있을 때]
[gravatar_for(user)와 user.username이 없을 때]
위의 경우 링크 주소를 적용하는 문자열이 없습니다.
- pluralize 메서드 : 링크
pluralize(count, singular, plural = nil)
public
Attempts to pluralize the singular word unless count is 1. If plural is supplied, it will use that when count is > 1, otherwise it will use the Inflector to determine the plural form.
pluralize(1, 'person') # => 1 person pluralize(2, 'person') # => 2 people pluralize(3, 'person', 'users') # => 3 users pluralize(0, 'person') # => 0 people
위와 같이 단수형 단어를 pluralize 메서드를 사용하면 복수형으로 변경합니다. 그래서 단수형 article을 복수형 articles로 변경할 수 있습니다.
결과 화면은 다음과 같습니다.
이상으로 포스팅을 마치겠습니다.
'Back-end' 카테고리의 다른 글
[루비] yield와 %w의 쓰임에 대해서 (0) | 2019.01.08 |
---|---|
[루비] 모듈(작성중) (0) | 2019.01.08 |
[루비온레일즈] 유저 정보와 프로필 이미지 보여주기 (0) | 2019.01.06 |
[루비온레일즈] 회원가입 (0) | 2019.01.05 |
[루비온레일즈] params.require(:article).permit(:title, :description) 무엇일까? (0) | 2018.12.25 |
- Total
- Today
- Yesterday
- 재테크공부
- 유즈케이스
- 열반스쿨기초반
- 항해플러스후기
- 월부닷컴
- 도커
- 관계대수
- 깃허브
- Use case
- 내년은 빡세게!!
- GIT
- Inception
- github
- 항해솔직후기
- Spring boot
- docker
- push_back
- resize
- front
- 깃
- 2023년
- 월급쟁이부자들
- 인셉션
- 개발자 회고
- 파라메터
- pop_back
- 항해플러스백엔드
- 부동산공부
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- 폭포수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |