2017-11-04 11 views
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>) 
+0

タイトルには、Railsにメソッドを含めるとしているが、質問にはSinatraというタグが付けられています。これを明確にしていただけますか? – spickermann

+0

他のユーザーが編集しました – RacketyGnome300

答えて

0

あなたはこれを試しましたか?

require_relative 'helper_method' 
include Helper 

post '/new_user' do 
    add_table(params[:username]) 
    redirect '/index' 
end 
関連する問題