私はJavaのバックグラウンドから、クラスを作成することができます。インスタンス化されたクラス(Ruby/Rails)でメソッドが見つかりません
TestClass x = new TextClass();
とx.shout()などのメソッドを呼び出します。
私はルビーのような外観で何か似たようなことをしようとしています。これは構文的かもしれないし、ルビーとレールのコンセプトもよく理解できないかもしれない。
ルビー
class myResource< ActiveResource::Base
self.site = "http://localhost:3008"
def self.shout
puts "I AM AN ACTIVE RESOURCE SHOUT!"
puts " CAPS RAGE YEAH!"
puts Time.now
end
end
内のサーバー上だから、HERESにクラスがこれは、クライアント側に座っています。
相続人は、サーバー上でアクティブなレコードと同じクラス:だからHERESに
class myRecord < ActiveRecord::Base
def self.shout
puts "I AM AN ACTIVE RECORD SHOUT!"
puts " CAPS RAGE YEAH!"
puts Time.now
end
end
私が試みられてきたものの結果。レールコンソールでサーバーで
:私の心には、クライアント側では
?> myRecord.shout
I AM AN ACTIVE RECORD SHOUT!
CAPS RAGE YEAH!
Wed Jul 13 10:17:33 +0100 2011
=> nil
>>
しかし、
myResource.shout
NoMethodError: undefined method `shout' for myResource:Class
from (irb):206
>>
これは彼らのほとんど同じようも意味がありません、そのように呼ばれるべきです。私は
test.shout @を書くとき
は、私は同じ未定義のメソッドを取得
@test = myResource or myRecord.new(blah blah blah)
としてそれらのいずれかをインスタンス化した場合。
Rubyのオブジェクトが何であるかという私の考えが吹かれました。私がここで間違っていることについて誰もが助言をしています。
あなたのコードは全く動作しないはず
はこれが何をしたいです。クラス名は大文字で始まる必要があります。 – Dogbert
@dogbert。こんにちは。あなたの漫画が大好きです。元のクラスは大文字で始まります。私はこの質問を書いて突っ込んでいたし、そのことを知らなかった。謝罪 – OVERTONE