🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.ruby
Article #1031

[RoR 2.0.2] Plugin - rozszerzanie modelu

#1031
From: edek
Date: Sat, 05 Apr 2008 15:10
36 lines
1797 bytes
Witam, mam model DatabaseItem < (dziedziczy standardowo po 
ActiveRecord::Base). Stworzyłem sobie plugin. W init.rb daję require 
"costam". W lib/costam.rb daję require "mojplugin/database_item". W 
lib/mojplugin/database_item.rb mam kod mniej więcej tej postaci

module Mojmodul
   module InstanceMethods
     def funkcja
       ":)"
     end
   end
end

DatabaseItem.send(:include, MojModul::InstanceMethods)

I teraz w konsoli MOGĘ odwołać się np. do DatabaseItem.find(:first).funkcja

W kontrolerze piszę sobie (gdzie "item" to jakiś obiekt tej klasy)

item.send("funkcja")

i mi wywala, że takowej nie ma. Korzystam z send, bo w prawdziwym 
przypadku nazwa funkcji jest generowana. Zauważyłem, że pomaga dopisanie 
w kontrolerze

DatabaseItem.send(:include, MojModul::InstanceMethods)

wtedy widzi ją OK.

O co chodzi? Czemu dopisanie tego w skrypcie inicjalizowanym przy 
starcie aplikacji działa w konsoli a w kontrolerze nie?

Liczę na Waszą pomoc, bo trochę głupieję, nie mogę się doszukać, gdzie 
jest problem.

m.
Technical Details
Message-ID: <ft84ol$82g$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: edek <edek@zkrainykredek.pl>
Newsgroups: pl.comp.lang.ruby
Subject: [RoR 2.0.2] Plugin - rozszerzanie modelu
Date: Sat, 05 Apr 2008 17:10:12 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 36
Message-ID: <ft84ol$82g$1@inews.gazeta.pl>
NNTP-Posting-Host: accr21.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1207408213 8272 83.9.141.21 (5 Apr 2008 15:10:13 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Sat, 5 Apr 2008 15:10:13 +0000 (UTC)
X-User: pesymista
User-Agent: Thunderbird 2.0.0.12 (X11/20080227)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit