예약 가능과 예약 불가로 색으로 구분
2. 예약 화면 이미지
3. 구현
4. 코드
5. 끝에
1. 소개
예약 가능과 예약 불가로 처리를 나누고 싶다고 생각했습니다만, 생각대로 가지 않았던 것과, 검색해도 기사가 적었기 때문에 정리합니다.
전제로, 시트의 좌석은 마스터 데이터로 DB에 저장됩니다.
예약 테이블(Reservations)과 좌석 테이블(Sheet)이 연관되어 있습니다.
예약 테이블은 좌석 테이블에 id를 sheet_id로 유지합니다.
Reservations
Sheet
sheet_id
id
・
행
・
컬럼
2. 예약 화면 이미지
예약할 수 있는 경우는 오렌지, 예약 불가의 경우는 색을 어둡게 해 시각적으로 알기 쉽게 하고 있습니다.
이번에는 영화관이 모델입니다. 응용하면 미용실이나 여행 사이트 등과 같이 취득한 캘린더나 날짜로 ○나 x를 사용하여 시각적으로 알기 쉽게 예약 화면을 만들 수도 있다고 생각합니다.
3. 구현
이번에는 helper를 사용하여 만듭니다.
heleper는 View내에서 하고 싶은 처리를 쓸 때 편리합니다. 왜냐하면, helper로 작성한 것은 <%= ヘルパー名 %>
로 하는 것으로 간단하게 호출할 수도 있고, View가 깨끗이 하기 때문에 가독성도 올라갑니다.
약간의 복잡한 처리를 View에서 실시하고 싶은 경우에 편리합니다.
다음 절차에 따라 처리합니다.
① Reservation의 shee_id 열에 sheet가 있는지 검색
② Reservation의 shee_id 컬럼에 sheet가 있는 경우는 (예약 있음) 색을 어둡게 한다, 없는 경우는 색을 오렌지 (예약 가능)
4. 코드
helpe
def reservation_list(sheet)
Reservation.exists?(sheet_id: "#{sheet}")
end
보기
<% @sheets.each do |sheet|%>
<% if reservation_list(sheet.id) %>
<div class="unavailable">
<p><%= sheet.row %><%= sheet.column %></p>
</div>
<% else %>
<%= link_to xxxxxx do %>
<div class="available">
<p><%= sheet.row %><%= sheet.column %></p>
</div>
<% end %>
<% end %>
<% end %>
도우미
헬퍼에 있는 exists?
메소드는 대상의 값이 있는지 검색해 줍니다. 이번에는 sheet_id
를 인수의 sheet
에서 검색합니다.
보기
①마스터 데이터의 sheet
는 controller
로 Sheet.all
를 하고 있습니다. 좌석 문자에 있는 알파벳은 row
, 숫자는 column
입니다.
그것은 each에서 꺼낸다. <% @sheets.each do |sheet|%>
② <% if reservation_list(sheet.id) %>
는 helper
로 작성한 메소드입니다. 인수에 sheet
의 id
넣어 id를 검색합니다.
③ else
를 사용하여 Reservationsテーブル
의 sheet_id
에 값이 있거나 없을 경우에 처리를 나누고 있습니다. 값이 없는 경우에만 링크를 추가하고 있습니다.
④ sheet
의 출력 결과에 CSS 클래스를 추가하고 있습니다만, 이것으로 색을 조정합니다.
5. 결론
exists는 편리한 메소드가 있는 것은 몰랐다. . 공부가 되었습니다.
Reference
이 문제에 관하여(예약 가능과 예약 불가로 색으로 구분), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kajikaji/items/5437aebc304c9074985f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
예약할 수 있는 경우는 오렌지, 예약 불가의 경우는 색을 어둡게 해 시각적으로 알기 쉽게 하고 있습니다.
이번에는 영화관이 모델입니다. 응용하면 미용실이나 여행 사이트 등과 같이 취득한 캘린더나 날짜로 ○나 x를 사용하여 시각적으로 알기 쉽게 예약 화면을 만들 수도 있다고 생각합니다.
3. 구현
이번에는 helper를 사용하여 만듭니다.
heleper는 View내에서 하고 싶은 처리를 쓸 때 편리합니다. 왜냐하면, helper로 작성한 것은 <%= ヘルパー名 %>
로 하는 것으로 간단하게 호출할 수도 있고, View가 깨끗이 하기 때문에 가독성도 올라갑니다.
약간의 복잡한 처리를 View에서 실시하고 싶은 경우에 편리합니다.
다음 절차에 따라 처리합니다.
① Reservation의 shee_id 열에 sheet가 있는지 검색
② Reservation의 shee_id 컬럼에 sheet가 있는 경우는 (예약 있음) 색을 어둡게 한다, 없는 경우는 색을 오렌지 (예약 가능)
4. 코드
helpe
def reservation_list(sheet)
Reservation.exists?(sheet_id: "#{sheet}")
end
보기
<% @sheets.each do |sheet|%>
<% if reservation_list(sheet.id) %>
<div class="unavailable">
<p><%= sheet.row %><%= sheet.column %></p>
</div>
<% else %>
<%= link_to xxxxxx do %>
<div class="available">
<p><%= sheet.row %><%= sheet.column %></p>
</div>
<% end %>
<% end %>
<% end %>
도우미
헬퍼에 있는 exists?
메소드는 대상의 값이 있는지 검색해 줍니다. 이번에는 sheet_id
를 인수의 sheet
에서 검색합니다.
보기
①마스터 데이터의 sheet
는 controller
로 Sheet.all
를 하고 있습니다. 좌석 문자에 있는 알파벳은 row
, 숫자는 column
입니다.
그것은 each에서 꺼낸다. <% @sheets.each do |sheet|%>
② <% if reservation_list(sheet.id) %>
는 helper
로 작성한 메소드입니다. 인수에 sheet
의 id
넣어 id를 검색합니다.
③ else
를 사용하여 Reservationsテーブル
의 sheet_id
에 값이 있거나 없을 경우에 처리를 나누고 있습니다. 값이 없는 경우에만 링크를 추가하고 있습니다.
④ sheet
의 출력 결과에 CSS 클래스를 추가하고 있습니다만, 이것으로 색을 조정합니다.
5. 결론
exists는 편리한 메소드가 있는 것은 몰랐다. . 공부가 되었습니다.
Reference
이 문제에 관하여(예약 가능과 예약 불가로 색으로 구분), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kajikaji/items/5437aebc304c9074985f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
helpe
def reservation_list(sheet)
Reservation.exists?(sheet_id: "#{sheet}")
end
보기
<% @sheets.each do |sheet|%>
<% if reservation_list(sheet.id) %>
<div class="unavailable">
<p><%= sheet.row %><%= sheet.column %></p>
</div>
<% else %>
<%= link_to xxxxxx do %>
<div class="available">
<p><%= sheet.row %><%= sheet.column %></p>
</div>
<% end %>
<% end %>
<% end %>
도우미
헬퍼에 있는
exists?
메소드는 대상의 값이 있는지 검색해 줍니다. 이번에는 sheet_id
를 인수의 sheet
에서 검색합니다.보기
①마스터 데이터의
sheet
는 controller
로 Sheet.all
를 하고 있습니다. 좌석 문자에 있는 알파벳은 row
, 숫자는 column
입니다.그것은 each에서 꺼낸다.
<% @sheets.each do |sheet|%>
②
<% if reservation_list(sheet.id) %>
는 helper
로 작성한 메소드입니다. 인수에 sheet
의 id
넣어 id를 검색합니다.③
else
를 사용하여 Reservationsテーブル
의 sheet_id
에 값이 있거나 없을 경우에 처리를 나누고 있습니다. 값이 없는 경우에만 링크를 추가하고 있습니다.④
sheet
의 출력 결과에 CSS 클래스를 추가하고 있습니다만, 이것으로 색을 조정합니다.5. 결론
exists는 편리한 메소드가 있는 것은 몰랐다. . 공부가 되었습니다.
Reference
이 문제에 관하여(예약 가능과 예약 불가로 색으로 구분), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kajikaji/items/5437aebc304c9074985f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(예약 가능과 예약 불가로 색으로 구분), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kajikaji/items/5437aebc304c9074985f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)