在Rails中包含一个方法

时间:2017-11-04 19:16:49

标签: ruby sqlite module sinatra

我想在我的控制器文件中包含一个帮助方法,以便执行在SQLite3中创建新表的任务。因此,在另一个文件中,我创建了一个名为“Helper”的模块,其中包含一个名为“add_table(name)”的方法,其目的是将表命名为传入的名称。这是我的模块文件的样子。

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)

在我的控制器文件中,我需要顶部的ruby文件。我在视图文件中有一个表单,它会询问用户名称,在发布请求后获取名称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>)

1 个答案:

答案 0 :(得分:0)

你尝试过这样的事吗?

import java.util.Scanner;

public class Words {

    public static void main (String[] args){

        Scanner keyboard = new Scanner(System.in);

        String line = keyboard.nextLine();

        String word1 = line.substring(0, line.indexOf(" ")).toUpperCase();
        String word2 = line.substring(line.indexOf(" ") +1).toLowerCase();
        String word3 = line.substring(line.lastIndexOf(" ")+1).substring(0, 
        ,2);

        System.out.println(word1 + " " + word2 + " " + word3);
    }

}