2017-11-04 2 views
0

Ich möchte eine Hilfsmethode in meine Controller-Datei einschließen, um die Aufgabe zum Erstellen einer neuen Tabelle in SQLite3 auszuführen. Also habe ich in einer anderen Datei ein Modul namens "Helper" mit einer Methode namens "add_table (name)" erstellt, mit dem Ziel, der Tabelle den übergebenen Namen zu geben. So sieht meine Moduldatei aus.Eine Methode in Rails einfügen

module Helper 

def add_table(username) 
    db = SQLite3::Database.new("helper_database") 
    create_table = <<-SQL 
     CREATE TABLE IF NOT EXISTS "#{username}" (
      id INTEGER PRIMARY KEY, 
      user_id INT, 
     ); 
    SQL 
    db.execute(create_table) 

In meiner Controller-Datei habe ich die Ruby-Datei oben benötigt. Ich habe ein Formular in der View-Datei, das den Benutzer nach einem Namen fragt, den Namen params nach der Post-Anfrage nimmt und diesen Namen in die Methode einfügt.

require_relative 'helper_method' 
post '/new_user' do 
    include Helper 
    add_table(params[:username]) 
    redirect '/index' 
    end 

irgendwelche Ideen, warum ich einen undefinierten Methodenfehler für "include" bekommen könnte?

(undefined method `include' for #<Sinatra::Application:0x007feb24f5e5a8>) 
+0

Der Titel besagt, dass Sie eine Methode in Rails einfügen möchten, aber die Frage ist mit Sinatra markiert. Kannst du das bitte klären? – spickermann

+0

wurde von einem anderen Benutzer bearbeitet – RacketyGnome300

Antwort

0

Haben Sie so etwas probiert?

require_relative 'helper_method' 
include Helper 

post '/new_user' do 
    add_table(params[:username]) 
    redirect '/index' 
end 
Verwandte Themen