rails de passer des paramètres à la "nouvelle" méthode

évidemment, je suis tout à fait nouveau pour les rails, de sorte bâton avec moi.

J'ai ajouté un constructeur à mon modèle

class Movie < Media
  attr_accessible :director, :studio
  attr_accessor :director, :studio

  validates_presence_of :director, :studio, :title
  def initialize title, director, studio
    @title = title
    @director = director
    @studio = studio
  end
end

et ce genre de foiré les choses pour moi.
Avant, j'avais une méthode de "nouveau" dans mon contrôleur comme ce

def new
    @movies = Movie.new
end

et cela a fonctionné bien avant de l'initialiser. Il exige de paramètres à passer à la "nouvelle " méthode", mais qui a été faite après qu'un avis a été ouvert pour le passage d'arguments à partir d'un utilisateur et de les enregistrer. Maintenant, je ne peux pas ouvrir ce point de vue, car j'obtiens une erreur

wrong number of arguments (0 for 3)

Le constructeur a été ajouté en raison du fait que j'ai commencé l'écriture du test pour mon application et de la configuration par défaut vaules pour le constructeur d'annuler cette épreuve. Suggestion sur la résolution de ce?

EDIT:
Mes tests ressembler à ceci:

require 'spec_helper'

describe Movie do

    before :each do 
        @movie = Movie.new "Bullet", "John", "20th"
    end
    describe "#{new}" do
        it "returns new object of Movie" do
            @movie.should be_an_instance_of Movie
        end
        it "throws ArgumentError when give less than 3 parameters" do
            lambda {Movie.new(:director => "John", :studio => "20th")}.should raise_exception ArgumentError
        end
    end

    describe "#title" do
        it "returns the correct title" do
            @movie.title.should eql "Bullet"
        end
    end
    describe "#director" do
        it "returns the correct director" do
            @movie.director.should eql "John"
        end
    end
    describe "#studio" do
        it "returns the correct studio" do
            @movie.studio.should eql "20th"
        end
    end
end

Sans que le constructeur de tous les tests échouent....

Suggestion: Si vous avez juste besoin de définir des valeurs par défaut pour le test, l'utilisation d'une usine de test qui fournit des moyens pour définir les valeurs par défaut et ne saignent pas présent dans le code de votre application. Si vous avez besoin de faire cela pour d'autres raisons, voir cette question
Je ne provied arguments dans mes tests. Pas le problème. Le Test a été de vérifier si il y a moins de 3 arguments provieded, à ne qui avait pour ajouter le constructeur, en faisant ainsi, ce problème s'est produit.
Ok, nouvelle suggestion: Ne pas écrire des tests pause de base active_record fonctionnalité pour aucune raison, vous forçant à écrire du code encontre largement utilisé rails de composants pour les corriger. ActiveRecord::Base#initialize accepte un paramètre de l'objet, et non une liste d'arguments. Si vous insistez sur la rupture d'une telle primaire morceau de active_record alors ce qui se passe pour être le premier de beaucoup de problèmes pour vous.

OriginalL'auteur radical_edo | 2013-02-09