Gem - Simple_calendar
'Simple_calendar' 란?
웹상에 달력을 만들어주는 Gem(루비 프로젝트) 입니다. 월 또는 한주 단위로 화면에 표현할 수 있으며 더 나아가 원하는 일수 만큼 화면에 달력을 그려낼 수 있습니다. 뿐만아니라, 이잼은 Meeting이라는 모델로 달력에다가 일정을 추가 또는 삭제를 할 수 있도록 지원해 줍니다. |
Home파일 작성
$ rails g controller home index
Gemfile의 작성
Gemfile
을 열어 아래와 같이 추가한 후,$ bundle install
Calendar 사용법
Month Calendar
You can generate a calendar for the month with the month_calendar
method.
<%= month_calendar do |date| %>
<%= date %>
<% end %>
Week Calendar
You can generate a week calendar with the week_calendar
method.
<%= week_calendar number_of_weeks: 2 do |date| %>
<%= date %>
<% end %>
Setting number_of_weeks
is optional and defaults to 1.
(옵션으로 몇주씩 화면에 띄울지 정할 수 있습니다.)
Custom Length Calendar
You can generate calendars of any length by passing in the number of days you want to render.
<%= calendar number_of_days: 4 do |date| %>
<%= date %>
<% end %>
Setting number_of_days
is optional and defaults to 4.
(옵션으로 몇일씩 화면에 띄울지 정할 수 있습니다.)
Scaffold (일정관리 생성)
아래의 Scaffold라는 명령문을 이용해
Meeting이라는 이름으로 CRUD를 모두 생성합니다.
Here's an example model:
# single day events
$ rails g scaffold Meeting name start_time:datetime
# multi-day events
$ rails g scaffold Meeting name start_time:datetime end_time:datetime
위처럼 생성이 되었다면,
홈 화면에 일정추가 페이지로 가는 링크를 만들어 줍니다.
페이지 주소를 어떻게 찾는지 궁금하다면
콘솔창에 rake routes라고 아래와 같이 입력해주면 찾으실 수 있습니다.
$ rake routes
경로를 찾은 후 아래와 같이 소스를 수정해 줍시다.
홈화면에 추가된 일정추가하기 링크를 클릭해 접속하게 되면,
다음과 같이 일정을 추가 및 수정, 제거 기능을
사용하실 수 있게 됩니다.
이렇게 추가된 일정을 저희가 앞서 만든 달력에 표시하고 싶다면,
다음의 내용을 따라주시면 됩니다.
달력을 추가한 페이지의 컨트롤러 즉, 이번 예제에서는
Home 이라는 페이지에 달력을 만들었으니 home 컨트롤러가 되겠네요.
컨트롤러에 들어가서 다음의 내용처럼 소스를 수정해 줍니다.
def index
@meetings = Meeting.all
end
완료 되셨다면, 이전의 달력소스
Month Calendar
You can generate a calendar for the month with the month_calendar
method.
<%= month_calendar do |date| %>
<%= date %>
<% end %>
<%= month_calendar events: @meetings do |date, meetings| %>
<%= date %>
<% meetings.each do |meeting| %>
<div>
<%= meeting.name %>
</div>
<% end %>
<% end %>
이렇게 수정하게 되면
다음의 화면처럼 일정관리 페이지에서 작성한
일정들이 화면에 표시되어지게 됩니다.
'Back_end > Ruby' 카테고리의 다른 글
[ Gem ] Bootstrap (0) | 2018.07.24 |
---|---|
[ Gem] Devise (0) | 2018.05.21 |