2011-05-02 2 views
1

Я пытаюсь установить Ruby GEM для MySQL. Я довольно новичок в Ruby.Как правильно установить MySQL Ruby Gem

У меня установлен RVM и Bundler. Должен ли я установить драгоценный камень через Bundler или RVM?

Какова была бы правильная команда, чтобы сделать это правильно?

+0

вы должны принять ответ (клещ слева) – apneadiving

ответ

2

Как только вы попали в каталог своего приложения, и после создания вашего гемма, как упоминалось в Srdjan, у вас есть два варианта. Либо запустите:

gem install mysql 

или добавить эту строку в Gemfile:

gem 'mysql' 

После того, как вы добавили эту строку в ваш Gemfile, запустите:

bundle install 

EDIT

Вы необходимо настроить вашу базу данных через файл database.yml для каждой из ваших сред (dev эопмент, постановка и производство). Это должно выглядеть следующим образом:

development: 
    adapter: mysql 
    database: name_of_your_database 
    encoding: utf8 
    host: localhost 
    username: root (replace with the actual username) 
    password: root (replace with the actual password) 

После того, как вы есть, что настроить, вы можете добавить migrations добавить таблицы в базе данных. Если это устаревшая база данных, вам может потребоваться сгенерировать некоторые модели из нее. Для этого вы можете использовать драгоценный камень legacy_database.

Вам не нужно самостоятельно обращаться к базе данных, Rails сделает это за вас. Чтобы получить доступ к своим таблицам и запросить их, вы можете использовать методы ActiveRecord.

Например, предположим, что у вас есть таблица с именем users, и вы должны найти пользователя по идентификатору, вы можете сделать это:

user = User.find(id) 

Читать documentation получить работает на запрашивая с помощью Active Record.

+0

@Amokrane Я использовал ваш вариант №1, и я получил камень, который появится в моей среде, но когда я пытаюсь это сделать, мне нужно «mysql» в моем коде Ruby, я все равно получаю сообщение об ошибке, которое не распознает mysql. Любая идея почему? – GeekedOut

+0

@GeekedOut Что вы точно пытаетесь сделать? Как только камень будет установлен, вы не должны его требовать, это уже сделано под капотом для вас! Я полагаю, вам нужно использовать его в качестве адаптера внутри вашего файла database.yml! Адаптер: mysql что-то вроде этого ... –

+0

@Amokrane Я пытаюсь потребовать MySQL gem в контроллере, чтобы я мог подключиться к базе данных. Я пытаюсь сделать что-то вроде этого: require 'mysql' - или мне просто нужно сделать это через файл database.yml? Если да, то каким образом я могу напрямую подключать/запрашивать db из кода сервера? - Благодаря! – GeekedOut

4

Поскольку у вас установлен RVM, создайте gemset для вашего приложения. Это изолирует драгоценные камни только для этого приложения и не повлияет на остальную часть системы.

rvm gemset create appname && rvm gemset use appname 

После того, как вы сделали это, установить драгоценные камни без Суда, либо вручную, либо через Bundler, обеспечивая изоляцию.

+0

я бы проголосовать, но это требует, чтобы у меня 15 очков репутации LOL :) – GeekedOut

+0

Спасибо, я сделал свои команды. Теперь, как я могу получить MySQL GEM в этот гемсет? - Благодаря! – GeekedOut

+0

@GeekedOut, после создания gemset любая установка gem, выполненная через командную строку или пакет, автоматически добавит ее в gemset. Что касается того, как это сделать, следуйте приведенным ниже ответам @ Amokrane. –

2

Чтобы получить установлен MySQL и работает вам нужно несколько вещей:

  • Заголовки развития, установленные для MySQL и Ruby,
  • A Рабочая mysql_config или mysql_config5 двоичный
  • gem 'mysql' перечислены в вашем Gemfile

Как только у вас есть все это на месте, оно должно собраться довольно чисто, используя Режим дня:

bundle install 
+0

Спасибо! Что значит «заголовки разработки, установленные для MySQL и Ruby?» - Какие изменения влекут за собой? Кроме этого, у меня уже установлен и запущен MySQL. – GeekedOut

+0

Некоторые системы имеют только двоичные файлы, необходимые для запуска обоих, но не включают файлы заголовков, что необходимо для компиляции расширений и драйверов. В некоторых дистрибутивах это предоставляется в отдельном дополнительном пакете '-devel'. – tadman

Смежные вопросы