0
SQLite3で新しいテーブルを作成するタスクを実行するために、コントローラファイルにヘルパーメソッドをインクルードしたいと思っています。そこで別のファイルでは、 "add_table(name)"というメソッドで "ヘルパー"と呼ばれるモジュールを作成しました。これは、渡されたテーブルに名前を付けることを目的としています。ここに私のモジュールファイルの様子があります。メソッドをRailsに組み込む
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)
私のコントローラファイルでは、ルビファイルが一番上に必要です。ビューファイルには、ユーザーに名前を尋ねるフォームがあり、ポストリクエストに続いて名前paramsを取得し、その名前をメソッドに挿入します。
require_relative 'helper_method'
post '/new_user' do
include Helper
add_table(params[:username])
redirect '/index'
end
"include"の定義されていないメソッドエラーが発生している理由についてのアイデアはありますか?
(undefined method `include' for #<Sinatra::Application:0x007feb24f5e5a8>)
タイトルには、Railsにメソッドを含めるとしているが、質問にはSinatraというタグが付けられています。これを明確にしていただけますか? – spickermann
他のユーザーが編集しました – RacketyGnome300