Forum: Ruby get not working

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Free B. (Guest)
on 2009-01-18 19:35
I have a class Halt. If i type Halt, the output is
>> Halt
=> Halt(id: integer, troute_id: integer, seq: integer, day: integer,
arrival: integer, departure: integer, duration: integer, tnode_id:
integer, mode: string, junction: boolean, distance: integer, created_at:
datetime, updated_at: datetime)

The database is populated. And code was working. But recently it stop
working.
If i type Halt.get, this is the output:
>> Halt.get(1)
NoMethodError: undefined method `get' for #<Class:0xb7025de8>
  from
/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:1833:in
`method_missing'
  from (irb):3
>>

can you please suggest why this is happeneing?
Ryan D. (Guest)
on 2009-01-18 22:34
(Received via mailing list)
On Jan 18, 2009, at 09:34 , Free Bird wrote:

> I have a class Halt. If i type Halt, the output is
>>> Halt
> => Halt(id: integer, troute_id: integer, seq: integer, day: integer,
> arrival: integer, departure: integer, duration: integer, tnode_id:
> integer, mode: string, junction: boolean, distance: integer,
> created_at:
> datetime, updated_at: datetime)

presumably Halt is both a method Halt() and a class... we can only
guess since you don't provide any code.

> The database is populated. And code was working. But recently it stop
> working.
> If i type Halt.get, this is the output:
>>> Halt.get(1)

In this case you're trying to execute the #get class method on the
Halt class. That's what the parser sees at least. I'm guessing (again)
that you don't have a #get class method and you're instead expecting
to call the #get instance method on whatever the #Halt method returns.
If you want to ensure that you're calling your method, add parens:

   Halt().get(1)

I don't think it is a good design to have an argless global method
with the same name as the class. you get confusion like the above.
Brian C. (Guest)
on 2009-01-19 00:27
Free Bird wrote:
> If i type Halt.get, this is the output:
>>> Halt.get(1)
> NoMethodError: undefined method `get' for #<Class:0xb7025de8>
>   from
> /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:1833:in
> `method_missing'
>   from (irb):3
>>>
>
> can you please suggest why this is happeneing?

Did you mean Halt.find(1) ?

At ar.rubyonrails.com I don't see any "get" method (either class or
instance)
Free B. (Guest)
on 2009-01-19 07:38
I have one db entry:(/db/migrate)

class CreateHalts < ActiveRecord::Migration
  def self.up
    create_table :halts do |t|
      t.integer :troute_id, :null => false
      t.integer :seq
      t.integer :day
      t.integer :arrival
      t.integer :departure
      t.integer :duration
      t.integer :tnode_id, :null => false
      t.string :mode
      t.boolean :junction
      t.integer :distance
      t.timestamps
    end
    execute "alter table halts add constraint fk_halt_troutes foreign
key (troute_id) references troutes(id)"
    execute "alter table halts add constraint fk_halt_tnodes foreign key
(tnode_id) references tnodes(id)"
  end

  def self.down
    drop_table :halts
  end
end

and i have one model (app/models)

# == Schema Information
# Schema version: 20081211325430
#
# Table name: halts
#
#  id         :integer(4)      not null, primary key
#  troute_id  :integer(4)      not null
#  seq        :integer(4)
#  day        :integer(4)
#  arrival    :integer(4)
#  departure  :integer(4)
#  duration   :integer(4)
#  tnode_id   :integer(4)      not null
#  mode       :string(255)
#  junction   :boolean(1)
#  distance   :integer(4)
#  created_at :datetime
#  updated_at :datetime
#

class Halt < ActiveRecord::Base
  belongs_to :troute
  belongs_to :tnode
  validates_presence_of :troute_id, :tnode_id
end

earlier, after populating database,
Halt.get(1) was working.





Brian C. wrote:
> Free Bird wrote:
>> If i type Halt.get, this is the output:
>>>> Halt.get(1)
>> NoMethodError: undefined method `get' for #<Class:0xb7025de8>
>>   from
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:1833:in
>> `method_missing'
>>   from (irb):3
>>>>
>>
>> can you please suggest why this is happeneing?
>
> Did you mean Halt.find(1) ?
>
> At ar.rubyonrails.com I don't see any "get" method (either class or
> instance)
Brian C. (Guest)
on 2009-01-19 10:28
Free Bird wrote:
> earlier, after populating database,
> Halt.get(1) was working.

How sure are you? I also use activerecord-2.2.2, and 'get' just gives
NoMethodError. I have also checked through the gem source and find no
'def get' or 'def self.get'.

If it did work at one time, then I think you must either have installed
some plugin, or defined your own 'get' class method.
This topic is locked and can not be replied to.