[ActiveRecord] wrong number of arguments (0 for 2) ?!

Hi all,

I have a basic model as follow, but when I try to query the database, I
get the following error:

‘wrong number of arguments (0 for 2)’

I don’t see any problem, I am becoming crazy o_O’

Migration

class CreateSubtasks < ActiveRecord::Migration
def self.up
create_table :subtasks do |t|
t.string :hostname, :type
t.integer :task_id
end
end

def self.down
drop_table :subtasks
end
end

Model

class Subtask < ActiveRecord::Base
belongs_to :task
end

Code causing the error

This doesn’t work: Subtask.find(:all)
This work: @toto = Subtask.new

I can add subtasks but not query them :S

Migration

class CreateSubtasks < ActiveRecord::Migration
def self.up
create_table :subtasks do |t|
t.string :hostname, :type
It seems that :type should not be used as a column name.

MR Damien wrote:

Migration

class CreateSubtasks < ActiveRecord::Migration
def self.up
create_table :subtasks do |t|
t.string :hostname, :type
It seems that :type should not be used as a column name.

I’m guessing that this (from ActiveRecord::Base doc) has something to do
with it:


Single table inheritance

Active Record allows inheritance by storing the name of the class in a
column that by default is named “type” (can be changed by overwriting
Base.inheritance_column).

Type is a reserve keyword for single table inheritance.

regards
abhishek

On Mon, Sep 29, 2008 at 5:47 PM, MR Damien
<[email protected]