Thanks!
class Translater
require "rubygems"
require "rmmseg"
include RMMSeg
RMMSeg::Config.max_word_length = 7
RMMSeg::Config.algorithm = :complex
RMMSeg::Config.dictionaries = [["dict/chars.dic", true],
["dict/words.dic", false],
["dict/desc.dic", false],
["dict/identity.dic", false],
["dict/name.dic", false],
]
Word = {}
File.open(File.join(File.dirname(__FILE__), "dict",
"word_china_english.trans")).each do |line|
arr = line.split(" ")
arr[1] = arr[0] unless arr[1]
Word[arr[0]] = Word[arr[1]]
end
def self.segment(phrase)
p RMMSeg::Config.max_word_length
RMMSeg::segment(phrase)
end
def self.run(phrase)
words = segment(phrase)
translation = ""
words.each do |word|
translation += Word[word].to_s + " "
end
translation
end
end
The actual problem is : why can not i use methods of some libray
(rmmseg in this exam) in rails.
I can use it in simple ruby program.
In rails, I encapsulate that method(segment) by a ruby class
(Translater), and put the source in folder lib/
when using it in helper functions, problem occurs like this:
undefined method `segment' for RMMSeg:Module
Thanks for your help again!
On 12月2日, 下午5时51分, Frederick Cheung <[EMAIL PROTECTED]>
wrote:
> On Dec 2, 5:59 am, hei <[EMAIL PROTECTED]> wrote:
>
> > Can anyone help me ~~
>
> What's the run method in translater? ALso it looks like this isn't the
> exact code that is running - for example include "RMMSeg" is almost
> certainly include RMMSeg; it's very hard to say anything about code
> when it has been changed in small ways in between what you're running
> and this mailing list - those changes could be key or could be hiding
> the real problem.
>
> Fred
>
> > On 12月2日, 下午12时04分, hei <[EMAIL PROTECTED]> wrote:
>
> > > I do things below:
>
> > > In lib/translater.rb
> > > class Translater
> > > require "rubygems"
> > > require "rmmseg"
> > > include "RMMSeg"
> > > ...
> > > def segment(text)
> > > RMMSeg::segment(text)
> > > end
> > > end
>
> > > in helper/xx/xxx.rb
> > > module xx
> > > require "translater.rb"
> > > def translate(text)
> > > Translater.run(text)
> > > end
> > > end
>
> > > when i use helper method tranlate, erros:
> > > undefined method `segment' for RMMSeg:Module
> > > But when I test these in a simple ruby program it works well
> > > Can anyone help me ?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---