ruby/rails/hobo の最新バージョンに移植する必要がある、数年前に誰かが書いた ruby/rails/hobo システムがあります。ruby は下位互換性を気にしていないようです。そのため、古いアプリで動作していたコードは動作しなくなりました。
古いアプリでは、observation.rb モデル ファイルに次のように記述されています。
belongs_to :survey
has_one :site, :through => :survey
def create_permitted?
acting_user == self.survey.contact or acting_user.administrator?
end
survey.rb モデル ファイルは次のとおりです。
belongs_to :contact, :class_name => 'User', :creator => true
残念ながら、observation.rb のコードは新しい ruby/rails/hobo では機能せず、次のエラーが表示されます。
NoMethodError in Observations#index
Showing controller: observations; dryml-tag: index-page where line #1 raised:
undefined method `contact' for nil:NilClass
Extracted source (around line #1):
0
Rails.root: /home/simon/ruby/frogwatch2
Application Trace | Framework Trace | Full Trace
app/models/observation.rb:48:in `create_permitted?'
「create_permitted」メソッドをどのように変更する必要がありますか? ruby/rails/hobo のドキュメントは非常にひどいものであることがわかりました (これはフリー ソフトウェアであるため、十分に公平です)。また、Googleでこれを検索する方法さえわかりません(私は何日も試してきました)。
助けてください!:)