calendar-helper プラグイン
登録したアイテムをカレンダ上にリンク表示させる.
calendar-helper.rb をDLしてきて,/app/helpers/に置く
- RadRails が認識してくれないので,再度立ち上げてみた.認識させる方法はありそうだが...
- データベースで日付のみのフィールドをつくる.MySQLのDatatypeがDATA.
コントロール(app/controllers/books_controller.rb)
- helper :calendar ヘルパー使うよ宣言?する
- calendar メソッドを作成
class BooksController < ApplicationController helper :calendar def calendar @books = Hash.new{[]} Book.find_all.each do |book| @books[book.date] <<= book end end
モデル(app/models/book.rb)
- クラス Bookに date メソッドを追加
def date; date_on end
- date_selectになっていることを念のため確認.
<p><label for="book_date_on">Date On</label><br/> <%= date_select 'book', 'date_on' %></p>
ビュー(app/views/calendar.rhtml)
- ファイルを作る
- 中身は以下
<%= calendar({:year => 2007, :month => 1}) do |d| render(:partial => 'day', :locals => {:date => d.to_date}) end %> <%= link_to 'Back', :action => 'list' %>
- _day.rhtml も作る
<%= date.day %> <BR> <%= @books[date].map do |book| link_to h(book.title), :action => 'show', :id => book end.join('<BR>') %>
- http://localhost:3000/books/calendar で表示できた!リンクもしている.