Article View: pl.comp.lang.ruby
Article #1031[RoR 2.0.2] Plugin - rozszerzanie modelu
From: edek
Date: Sat, 05 Apr 2008 15:10
Date: Sat, 05 Apr 2008 15:10
36 lines
1797 bytes
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-mailShow 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