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>)
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
wurde von einem anderen Benutzer bearbeitet – RacketyGnome300