Статьи

RailsBricks: начните быстрее с Rails

Снимок экрана 2014-11-23 19.23.54

Некоторое время назад один из наших авторов представил учебник по Rails, в котором RailsBricks упоминалась в качестве отправной точки для приложения. Я никогда не слышал о RailsBricks, поэтому я проверил это и решил, что могут быть другие потерянные души, такие как я.

RailsBricks — это драгоценный камень, который «позволяет вам создавать приложения Rails намного быстрее, автоматизируя повседневные задачи по настройке и настраивая полезные для вас общие драгоценные камни». Он также имеет логотип Lego в качестве логотипа. Я люблю Лего. Если RailsBricks — это Legos для Rails, я похож на Флинна.

В двух словах, RailsBricks использует некоторые из наиболее часто используемых гемов Rails в удобном небольшом генераторе. Эти особенности / драгоценные камни:

  • Аутентификация с помощью Devise
  • Пользовательский интерфейс с Bootstrap
  • Автоматически сгенерированные инициализаторы электронной почты
  • Секреты применения с Фигаро
  • Настройте базу данных
  • Легко создать блог, страницу продукта и т. Д.
  • Использует Redcarpet для уценки
  • Автоматически создавать контактную форму
  • Настроить Git-репозиторий
  • Включите драгоценные камни для легкого развертывания в Heroku

Как вы можете видеть, RailsBricks состоит из множества частей. И, как и в случае с Legos, вы можете выбирать, какие части вы собираете вместе для создания своего приложения. В сущности, RailsBricks поможет вам стать Мастером-строителем.

Блог Мастера-Строителя

Все эти разговоры о лего заставляют меня настроиться общаться с другими мастерами-строителями. Таким образом, я собираюсь создать блог, где я буду обсуждать все мои знания лего, чтобы моя строительная мудрость могла распространяться по всей земле. Давайте начнем строить.

Установка

RailsBricks — это драгоценный камень, поэтому gem install railsbricks и все gem install railsbricks . rbricks включает исполняемый файл rbricks который при rbricks сам по себе дает:

 > rbricks RailsBricks usage: ------------------ rbricks --new (or -n) : --> create a new RailsBricks app. rbricks --recreate-db (or -r) : --> drop, create, migrate & seed the DB rbricks --config --> display your app config rbricks --version (or -v) : --> display the RailsBricks version More help, tutorials and documentation at http://www.railsbricks.net/get-started 

На странице Getting Started упоминается о версиях Ruby, в которых говорится, что приложения, созданные с помощью RailsBricks, поддерживают текущую версию (2.1.5) наряду с предыдущей. Я использую 2.1.5 для этой демонстрации.

Создать приложение

rbricks -n запускает набор вопросов, которые RailsBricks использует для сборки вашего приложения:

 > rbricks -n ***************************** * * * RailsBricks 3.0.2 * * www.railsbricks.net * * * * using Rails 4.1.7 * * * ***************************** - Do you want me to help you along the way by giving you tips? 1. Sure, help me make the right choices (default) 2. Nope, I already know how to use RailsBricks Your choice (1-2): 

Я выбираю 1 , так как я первый раз в RailsBrick. Обратите внимание, что он использует Rails 4.1.7 (текущий выпуск 4.1 — 4.1.8).

Фонд

brick1

 1. Your Rails App Name ---------------------- First of all, you need to give a name to your new app. I'll create it in /Users/ggoodrich/projects/rubysource/. Of course, only use a valid Rails app name. - What do you want to name your app? (default: railsbricks_1214) App name: master-builder-blog 2. Your Development Environment ------------------------------- Before I can create your app, I need more information about your current development environment. Note that I don't support versions of Ruby older than 2.0.0. - Which version of Ruby do you want to use? 1. 2.0.0 2. 2.1.4 3. 2.1.5 (default) Your choice (1-3): 3 On some systems, you can't install gems by issuing a simple 'gem install name_of_gem' command but need to prefix it with 'sudo' and issue 'sudo gem install name_of_gem'. If this is the case, you most likely will need to input your password at some point. - How do you usually install new gems? 1. gem install name_of_gem (default) 2. sudo gem install name_of_gem Your choice (1-2): 1 Do you usually run rake tasks by prefixing them with 'bundle exec'? I also need to know that. - How do you usually run rake tasks? 1. rake some_task (default) 2. bundle exec rake some_task Your choice (1-2): 1 

В первых двух вопросах вы называете свое приложение и выбираете версию Ruby. В моем случае это mbblog и 2.1.5 соответственно. После этого возникает вопрос о том, нужен ли вам sudo или bundle при запуске команд в терминале. Я не.

База данных

База данных — следующий кирпичик в нашем приложении.

brick2

 By default, Rails uses SQLite 3 to store the development database. I can change that to PostgreSQL but you have to make sure that a PostgreSQL server is installed and currently running. If it doesn't, the app creation will fail as I won't be able to create the development database. If you are on OS X, I struggle with the Postgres.app as the location of pg_config keeps changing between versions. If you want to use PostgreSQL, you'll have to use a full install which you can get through Homebrew by running 'brew install postgresql'. - Which database engine do you want to use for development? 1. SQLite 3 (default) 2. PostgreSQL Your choice (1-2): 2 Right, you decided to go with PostgreSQL. Note that I will only create a development config. You'll have to manually edit master_builder_blog/config/database.yml for test and production. I will create the database so make sure it doesn't exist yet. Right, you decided to go with PostgreSQL. Note that I will only create a development config. You'll have to manually edit master_builder_blog/config/database.yml for test and production. I will create the database so make sure it doesn't exist yet. - Your database server hostname? example: 192.168.1.1, localhost, ... (default: localhost) Hostname: localhost - What is the database port number? (default: 5432) Port: 5432 - What is the development database name? (default master_builder_blog_development) Database name: - What is your database username? (default: ggoodrich) Database username: postgres - What is your database user password? tip: leave blank for none (default: none) Database user password: 

RailsBricks по умолчанию использует SQLite3, но дает возможность для PostgreSQL (PG). Мастер дает вам хорошее предупреждение, если вы идете по пути PostgreSQL. PG должен быть установлен и запущен сервер, что достаточно просто сделать с помощью Homebrew или в Ubuntu . У меня уже установлена ​​и запущена PG, поэтому я выбрал эту опцию.

Гит

Lego_4.jpg

 I can create a local and a remote Git repository for you. If you choose to do so, I will also create a specific .gitignore file to make sure your secrets are not distributed with your code. - Create a local Git repository? 1. Yes (default) 2. No Your choice (1-2): 1 - Add a remote Git repository? 1. Yes 2. No (default) Your choice (1-2): 1 - What is the URL of your remote Git repository? example: https://github.com/yourname/your_app.git Remote URL: https://github.com/sitepoint-examples/railsbricks-tut.git 

Мастер настраивает git, что достаточно просто. Он также создаст ваш пульт, если у вас есть, что является дополнительным плюсом.

Аутентификация / Пользователи

brick4

 3. About Your App ----------------- If your app will have users, I can create an authentication scheme using Devise. If you want me to create resources accessible from an admin zone (blog posts, for example), you will need to have an authentication scheme. - Create an authentication scheme? 1. Yes (default) 2. No Your choice (1-2): 1 You can choose what credentials users will need to provide to sign in. Whether with a username and a password or with an email address and a password. - How will users sign in? 1. With a username (default) 2. With an email address Your choice (1-2): 1 If you don't want to allow new users to register, I can disable the sign up feature. - Allow new users to sign up? 1. Yes, they can click on a 'sign up' button (default) 2. No, I don't want to allow new users to sign up Your choice (1-2): 1 I can also create 50 test users for you if you need. - Create test users? 1. No, only create my Admin account (default) 2. Yes, create 50 Your choice (1-2):1 

RailsBricks, как упоминалось ранее, настроит аутентификацию с помощью Devise. Кроме того, вы можете выбрать способ входа пользователей (адрес электронной почты или имя пользователя) и возможность регистрации на вашем сайте. Кроме того, ваш администратор будет создан, если вы хотите. Это действительно хорошо, потому что многие приложения нуждаются в том, чтобы эти кусочки считались реальными.

Почта / Блог Ресурсы

brick5

Мы создаем блог, поэтому давайте настроим RailsBricks для нашего ресурса Post:

 I can create a Post model which is useful if you intend to have a blog, news, articles, etc, in your app. The appropriate model, routes, controllers and views will be created and useable in the admin zone. You will be able to add new posts using the Markdown syntax. To change settings such as how many posts are displayed on a page, refer to the RailsBricks documentation. - Create Post resources? 1. Yes 2. No (default) Your choice (1-2): 1 

Форма обратной связи

карандаш

Наши пользователи захотят рассказать нам, какой классный MBBlog, поэтому нам понадобится контактная форма:

 I can create a Contact form for you. Your visitors will be able to fill in their name, email address and their message to you. Note that I won't allow visitors to send you links in order to cut down on spam! To change the contact form settings, refer to the RailsBricks documentation. - Create a Contact form? 1. Yes 2. No (default) Your choice (1-2): 1 

Гугл Аналитика

Google

Аналитика важна и позволит нам увидеть, кто заходит на сайт. Вам нужно зайти на сайт Google Analytics и зарегистрироваться, чтобы получить свой идентификатор отслеживания.

 I can already generate the necessary bits of code for using Google Analytics. It will work with Turbolinks, don't worry. You will need to provide me with your Google Analytics Tracking ID. It's a string like UA-000000-01. If you don't have one yet, I will use UA-XXXXXX-XX and you can set it later within master_builder_blog/app/views/layouts/_footer.html.erb. - Use Google Analytics? 1. Yes (default) 2. No Your choice (1-2): 1 - What is your Google Analytics tracking ID? (default: UA-XXXXXX-XX) Tracking ID: UA-56761773-1 

Эл. адрес

brick7

Давайте отправим электронное письмо нашим пользователям, чтобы они знали, когда у нас будет потрясающий новый контент Master Builder:

 Your app can send emails. It is even required if you chose to add a contact form or let new users sign up. Let's go through the basic settings I need to know. If you choose not to configure your email settings now, you can do it at a later stage by editing the relevant section within master_builder_blog/config/application.yml. - Configure email settings? 1. Yes (default) 2. No Your choice (1-2): 1 - What is the email address you will send emails from? example: [email protected] Email address: [email protected] - What is your SMTP server address? example: smtp.example.com SMTP server: smtp.gmail.com - What is the domain name of your SMTP server? example: 192.168.1.1, example.com, ... Domain name: mbblog.com - What is the SMTP server port number? (default: 587) SMTP port: - What is your SMTP username? SMTP username: [email protected] - What is your SMTP password? tip: it will be stored in master_builder_blog/config/application.yml but won't be tracked by Git SMTP password: ****** 

Это действительно мило. RailsBricks заботится о настройке всех настроек SMTP, включая пароли. Конфиденциальная информация НЕ будет храниться в Git, потому что это плохо.

UI / Бутстрап

щ

RailsBricks включает в себя настройку Bootstrap, если вы этого хотите. Я делаю:

 4. Your App UI -------------- I will use Bootstrap 3 to build the UI of your app. You can change Boostrap default values by editing master_builder_blog/app/assets/railsbricks_custom.css.scss. - Which UI scheme do you want to use for the content area? 1. Light (default) 2. Dark Your choice (1-2): 2 - Which UI scheme do you want to use for the navbar? 1. Light 2. Dark (default) Your choice (1-2): 2 - Which UI scheme do you want to use for the footer? 1. Light 2. Dark (default) Your choice (1-2): The primary color is expressed as a hexadecimal value such as #663399 (purple). In master_builder_blog/app/assets/railsbricks_custom.css.scss, the primary color is assigned to a variable named '$brand-primary'. It is used as the base color for links, default buttons, etc... . - What primary color do you want to use? tip: expressed as hexadecimal such as #663399 (default: #428BCA) Primary color: Fonts are an important part of you app. You can see what each proposed font looks like by searching for their names on Google Fonts. - Which font family and fallback options do you want to use as the main one for the UI? 1. Open Sans, Helvetica, Arial, sans-serif (default) 2. Arial, Helvetica, sans-serif 3. GENTIUM BASIC, TIMES NEW ROMAN, SERIF 4. ANONYMOUS PRO, COURIER NEW, MONOSPACE YOUR CHOICE (1-4): 4 

RailsBricks настраивает одну из двух тем (Light или Dark) и шрифты.

Настройки производства

тычок

MBBlog будет размещен на Heroku. Знаешь что? RailsBricks также может помочь нам настроить это:

 5. Your Production Settings --------------------------- At some point, you will deploy your app to a production environment. I can already set up some settings for you. - Do you want to set up some production settings already? 1. Yes (default) 2. No Your choice (1-2): 1 If you opt to host your app with Heroku, I can already add the necessary 12 Factor gem to a production group within your Gemfile. - Where will you host your app? 1. Heroku (default) 2. Somewhere else Your choice (1-2): 1 - What will be the URL of your app? example: www.my-app.com, blog.my-app.com, ... tip: don't prefix the URL with http:// URL: mbblog.net By default, Rails apps use WEBrick as a simple HTTP web server. Although it is a good web server for development purpose, it is not really advised to use it in a production environment. I can configure your app to use Unicorn in production. If you choose so, I will add the Unicorn gem to your Gemfile within the :production group, create a unicorn.rb file within master_builder_blog/config and add a Procfile to your app root. You can edit Unicorn settings in master_builder_blog/config/unicorn.rb if you need to. - Do you want to use Unicorn in production? 1. Yes (default) 2. No Your choice (1-2): 1 

Стоит отметить, что RailsBricks не запускает heroku create , поэтому вам придется делать это вручную. Однако RailsBricks добавляет гем rails12factor в Gemfile и настраивает Unicorn, что позволяет нашему приложению иметь в работе надежный многопроцессорный сервер.

Хорошо, приступай!

идти

Последнее, что спрашивает мастер, — хотим ли мы установить приложение прямо сейчас. Почему бы и нет?

 6. Summary ---------- - I am ready! Generate master_builder_blog now? 1. Do it! (default) 2. No, not now Your choice (1-2): 1 

Кстати, если вы выбрали здесь «Нет», это прерывает создание, и вы должны начать заново.

Финальная заявка

После всего этого, что сделал наш выбор строительства? При запуске сервера Rails ( rails s ) и открытии http: // localhost: 3000 открывается следующая страница:

домашняя страница

Нажав на «Войти», вы попадете на страницу входа. Помните, что RailsBricks сделал для нас пользователя-администратора, поэтому войдите с помощью admin / admin. Примечание: мне пришлось запустить консоль Rails и изменить пароль администратора, чтобы войти в систему.

После входа в систему в верхнем меню появляется меню «Администратор».

админ

Он отображает самые последние входы и подписки, а также количество пользователей и сообщений. Давайте создадим пост. Нажмите «Сообщения», затем «Новое сообщение»

новый пост

Новая форма публикации довольно стандартная. Это, однако, позволяет вам использовать Markdown, что очень круто. В моем приложении шрифт в текстовых виджетах очень легкий, поэтому я чувствую, что мой выбор пользовательского интерфейса, возможно, был немного неправильным. Несмотря на это, это довольно круто. Я могу пометить сообщение как черновик или сразу же опубликовать.

Почта

Теперь на странице «Сообщения» перечислены мои сообщения, которые превратили уценку в HTML. Отлично.

Получить здание

Я должен сказать, что мой набег в RailsBricks был примерно таким же приятным, как игра с Legos. Я могу выбрать, что строить из набора надежных инструментов с умными настройками по умолчанию. В общем, RailsBricks — отличный выбор, если вам нужно приложение Rails с аутентификацией, ресурсами блога, настроенными рабочими параметрами и многим другим.

Кстати, исходный код моего сгенерированного RailsBrick приложения можно найти на Github .

Получить здание!