2016-11-04 7 views
0

Ich bin Anfänger von Schienen. Ich versuche ein Formular zu erstellen, das nur Titel und Inhalt hat und eine Datenbank erstellt, die sie speichern kann.keine Methode Fehler auf Rubin auf Schienen

Dies ist meine Migrate Datei

class CreateMelons < ActiveRecord::Migration 
    def change 
    create_table :melons do |t| 

     t.string :title 
     t.text :content 

     t.timestamps null: false 
    end 
    end 
end 

Und das ist mein Controller

def write 
     @title =params[:title] 
     @content = params[:content] 

     @new_post = Melon.new 
     @new_post.title =params[:title] 
     @new_post.content =params[:content] 
     @new_post.save 

     redirect_to "/list" 


    end 

und die Fehlermeldungen sind hier.

undefined method `title=' for #<Melon id: nil, created_at: nil, updated_at: nil> 

Ich weiß nicht, was der Grund ist. Es gibt Titel Spalte! Und ich habe Rake db ausgeführt: migrieren Befehl. Bitte helfen Sie mir!

+0

Können Sie den Text Ihres melon.rb-Modells anzeigen? – moveson

+0

Sie haben keinen Titel für dieses Modell '# ' –

+0

Haben Sie die gleiche Migration aktualisiert oder haben Sie sie schon einmal migriert? –

Antwort

0

OK, ich werde meine eigene Frage beantworten.

'Keine Methode Fehler' von Ruby auf Schienen erscheint, wenn es keine solche Methode in schema.rb-Datei oder Attr Accessor in Ihrem Modell gibt.

Daher sollten Sie Ihre Methode wie z. B. tilte, Inhalt in Ihrer Migrationsdatei und MIGRATE Ihre Datenbank hinzufügen, um die Datei schcema.rb zu aktualisieren.

Oder Sie können einfach die Methode als attr Accessor hinzufügen, wenn Sie keine zusätzliche Spalte für Ihre Datenbank wollen.

+0

Sie müssen Ihre Datenbank wirklich nicht löschen, um sie zu migrieren. Anderenfalls könnten Personen keine Migrationen in der Produktion durchführen. –

+1

@MichaelKohl Ich edited. Vielen Dank! –

Verwandte Themen