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>')
%>