2017-02-14 19 views
0

Привет, я пытаюсь настроить базу данных для хранения писем с использованием ruby, sinatra, ActiveRecord и mysql. Любые предложения о том, что я делаю неправильно? Im пытается вывести его на отдельную страницу, которую я могу видеть, а затем публиковать ее с помощью URL-адреса хост-сервера.mysql Базы данных, как я могу это исправить?

require 'sinatra' 
    require 'activerecord' 
    # require 'sinatra-activerecord' 


    get '/' do 

    erb :index 
    end 

    def save_email (email) 
    file.print(email) 
    end 



    get '/email' do 
    params[:email] 


    # # redirect '/' 
    end 


    post '/email' do 

    params[:email] 
    @email = params[:email] 
    erb :email, :locals => {:email => params[:email]} 

    end 

    # Change the following to reflect your database settings 
    ActiveRecord::Base.establish_connection(
    adapter: 'mysql', # or 'postgresql' 
    host:  'localhost', 
    database: 'Stored_Emails', 

) 
class Stored_Emails < Sinatra::Application 
end 

class Stored_Emails < ActiveRecord::Base 
end 

ActiveRecord::Migration.create_table :email do |t| 
t.string :emails 
end 

create_table :emails, force: true do |t| 
t.string :email 
t.belongs_to :email, index: true 
    end 




get '/email' do 
params[:email].all 
end 
+0

В чем проблема? Это довольно беспорядок кода. – tadman

+0

Да, жаль, что я просмотрел слишком много ресурсов и думаю, что я совпадал с неправильным синтаксисом. У меня возникли проблемы с запуском базы данных, потому что я столкнулся с ошибками. Основная ошибка в том, что мне не хватает аргумента @tadman – jamessullivan77

+0

Ошибки помогают неизмеримо при объяснении вашей проблемы, поэтому вам нужно сообщить, что это такое и какие строки в них они ссылаются. – tadman

ответ

0

Обычно вы нарушите свой код на несколько файлов (мы используем папки с именем конфигурации, хелперы, библиотеки, виды, маршруты, модели, миграции) и требуют их в верхней части приложения. Однако, если вы хотите поместить его в один файл и просто использовать его, а также Gemfile и Gemfile.lock. Вот как это может выглядеть:

# Require your gems 
require 'sinatra' 
require 'activerecord' 

# Libraries 

# Models 
class Stored_Emails < ActiveRecord::Base 
end 

# Configuration 
# Change the following to reflect your database settings 
ActiveRecord::Base.establish_connection(
    adapter: 'mysql', # or 'postgresql' 
    host:  'localhost', 
    database: 'Stored_Emails' 
) 

ActiveRecord::Migration.create_table :email do |t| 
    t.string :emails 
end 

# Migrations 
create_table :emails, force: true do |t| 
    t.string :email 
end 


# Helpers 
def save_email (email) 
    file.print(email) 
end 

# Routes 
get '/' do 
    # Load whatever you want to show in your index page into class variables 
    erb :index 
end 

get '/email' do 
    Stored_Emails.all.to_json 
end 

post '/email' do 
    @email = Stored_Emails.find_by(params[:email]) 
    erb :email 
end 

Теперь вы будете иметь, чтобы сделать хороший бит работы, чтобы получить этот ход. Вот что я предлагаю вам прочитать:

1) Синатры документация - http://www.sinatrarb.com/intro.html

  • маршруты
  • работает ваш Синатра приложение
  • мнениями с Еврорадио

2) Bundler документации для драгоценных камней - http://bundler.io/

3) ActiveRecord documentati на - http://guides.rubyonrails.org/active_record_basics.html

  • Подключение к базе данных Создание базы данных с помощью миграции - это один раз сделка на Запрос к базе данных

Good Luck!

+0

большое вам спасибо. Это отличный совет. Когда я пытался это сделать, я прыгал впереди своего класса, чтобы узнать это. Теперь я лучше понимаю и точно знаю, что делать с вашим руководством. Еще раз спасибо! – jamessullivan77