railsしりとり modelのvalidatesでできた
http://shokai.mag.keio.ac.jp:3000/words
のNewWordから投稿できる。しばらく動かしておいてみる
modelの入力値をチェックするvalidateで実装した
class Word < ActiveRecord::Base validates_presence_of :item, :message => '入力されていません' validates_uniqueness_of :item, :message => 'すでに使われた言葉です' def validate w = Word.find(:first, :order => "id DESC") return if w == nil # 初投稿の時 if item[0] =~ w.item[-1,1] # 最後の文字が同じか? errors.add(:item, "しりとりしてください。前の人は#{w.item}です") end if item =~ /.*[んン]$/ errors.add(:item, "負けを認めてください") end end end
参考:Module: ActiveRecord::Validations::ClassMethods
http://wota.jp/ac/?date=20050802#p01
http://jp.rubyist.net/magazine/?0006-RubyOnRails
あと、http://shokai.mag.keio.ac.jp:3000/words.xml とかから簡単にxmlで取得できるのが良いですね