2007-05-19(Sat) [長年日記]

_1 [Rails] 飲み会管理システム(8)

イベントの参加者を見れるように、scaffoldのshowを拡張する。

event/show.rhtmlに以下を足すだけ。

<table>
<tr><td>参加候補者</td><td>参加</td></tr>
<% @event.memberships.each do |membership| %>
<tr>
<td><%= membership.user.nickname %></td>
<td><%= membership.joined ? "YES" : "?" %></td>
</tr>
<% end %>
</table>

_2 [Rails] 飲み会管理システム(9)

招待メールを出せるようにしよう。環境設定をconfig/environment.rbに足した。

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
 :address => 'server.example.com'
}

メーラを作る。

% ruby script/generate mailer Mailer invite

models/mailer.rbが出来ているので書き換える。 本文を@bodyで渡すので、mailer/invite.rhtmlも出来ているがそのままにしておく。

class Mailer < ActionMailer::Base
 def invite(event, from)
   @charset = "iso-2022-jp"
   @subject    = NKF.nkf('-j -m0', event.title)
   @body       = NKF.nkf('-j -m0', event.mailbody)
   @recipients = event.users.collect {|user| user.mailaddress}
   @from       = from.mailaddress
   @headers    = {}
 end
end

event/show.rhtmlにボタンを付ける。

<% form_tag :action => 'mail', :id => @event do %>
 <%= submit_tag '参加候補者にメール' %>
<% end %>

event_controller.rbにmailアクションを足してメールを出す。

 def mail
   @event = Event.find(params[:id])
   Mailer.deliver_invite(@event, User.find(session[:user_id]))
   redirect_to :action => 'list'    
 end

自分にメールしている範囲では、subjectはiso-2022-jpなbase64、本文は生iso-2022-jpになっているけど、 本当に大丈夫かなぁ。

_3 [Rails] 飲み会管理システム(10)

参加、不参加のチェックボックスは、参加、不参加、わからない、未回答の選択リストの方がよい気がして来た。

_4 [生活] 歯医者

噛み合わせの調整と掃除をして貰った。

[]