Ruby on Rails - Generating resources

Ruby, Ruby on Rails, user, web, генерирование

Once managed to get in a previous article , a working version of the web application in Ruby, I went on to deal with the development and generation of resources, as well as with the study of architecture, Ruby on Rails web application. Fortunately this framework uses the MVC pattern, which is also used to Qt, so the overall understanding of architecture problems should arise.

During the search of sources of information in the style of "Ruby for Dummies", "Ruby in 21 days", etc. I came, apparently, a very great resource which is a translation of the book Ruby on Rails Tutorial by Michael Hartl. The first impression of the book was positive. So that further self-study, perhaps, will be spending on this resource.

From the first pros who have found it so references to the development environment RubyMine from JetBrains. I'm already familiar with products such as WebStorm, PHPStorm, Intellij IDEA and based on it AndroidStudio, so at this point chose this environment. What's strange Google for Ruby IDE requests and similarly, showed no information on this development environment, probably have not untwisted.

Resource generation USER

In the above named book offers after the creation of the first test application to add to the database table with the user accounts, and project our newfound test blog all necessary to work with the user files, ie the page to add, delete, view the list of users.

That is, the following files:

  • db/migrate/20130305221714_create_users.rb
  • app/models/user.rb
  • test/models/user_test.rb
  • test/fixtures/users.yml
  • app/controllers/users_controller.rb
  • app/views/users
  • app/views/users/index.html.erb
  • app/views/users/edit.html.erb
  • app/views/users/show.html.erb
  • app/views/users/new.html.erb
  • app/views/users/_form.html.erb
  • test/controllers/users_controller_test.rb
  • app/helpers/users_helper.rb
  • test/helpers/users_helper_test.rb
  • app/views/users
  • app/views/users/index.json.jbuilder
  • app/views/users/show.json.jbuilder
  • app/assets/javascripts/users.js.coffee
  • app/assets/stylesheets/users.css.scss
  • app/assets/stylesheets/scaffolds.css.scss

And all of these files are generated automatically by the scaffold command, which generates all the necessary code. Thus, it is necessary to add to the database table with the following form:

  • id - a unique string identifier, data type integer;
  • name - user name, data type string;
  • email - postal address, the data type string.

To do this, go to the blog directory automatically generated content in a previous article (mine is C:\Sites\blog) and execute the following command:

$ rails generate scaffold User name:string email:string

As you can see, there does not appear id records, as it is automatically generated. Setting User - is responsible for the name of the table, and as a result generated a table called users. Also as a result of this program code is added to a couple of fields in a table. You can verify this by looking in the SQLite database, but it can be done with the help of SQLiteStudio program, by the way recommend as a very handy tool. These additional fields will be the date of creation and update date.

But to see the data in the database so you can not initially. Because the template has been created, but the table has not been added to the database. For this purpose it is necessary to upgrade, that is to migrate the following additions to the database command:

$ bundle exec rake db:migrate

I confess, I have it just did not work out, because I forgot to install the bundle. Correcting this situation the team:

$ gem install bundler

Well, after the migration, run the server:

$ rails server

And we try to work with users. To do this, go to the following address in your browser:

URL Действие Назначение
/users index страница, для отображения списка всех пользователей
/users/1 show страница показывающая пользователя с id 1
/users/new new страница для создания нового пользователя
/users/1/edit edit страница для редактирования пользователя с id 1

But I have not taken off the case, instead of showing the expected page, an error page.

The matter turned out that the code generate is in conflict with the code in application.html.erb file that serves as a template for posting information about our users. After some searching on the net, managed to solve the problem of changing the application parameter to default

It was:

<!DOCTYPE html>
<html>
<head>
  <title>Blog</title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= yield %>

</body>
</html>

It became:

<!DOCTYPE html>
<html>
<head>
  <title>Blog</title>
  <%= stylesheet_link_tag    'default', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'default', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= yield %>

</body>
</html>

Result

As a result, it managed to get the desired page on adding users, their editing, and deleting.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
Support the author Donate

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Donate

Hello, Dear Users of EVILEG!!!

If the site helped you, then support the development of the site financially, please.

You can do it by following ways:

Thank you, Evgenii Legotckoi

A
April 6, 2020, 5:24 a.m.
Alexey

C++ - Test 001. The first program and data types

  • Result:86points,
  • Rating points6
R
April 5, 2020, 2:32 p.m.
Roman

C++ - Test 002. Constants

  • Result:91points,
  • Rating points8
AP
April 5, 2020, 2:31 p.m.
Alexander Peshkov

C++ - Test 001. The first program and data types

  • Result:60points,
  • Rating points-1
Last comments
April 3, 2020, 8:06 a.m.
Konstantin Grudnitskiy

Я надеюсь вы уже разобрались в чем дело, но если вдруг нет, то проблема состоит в том, что вы пытаетесь запустить программу из интерпретатора питона. Файл main.py это уже готова…
April 3, 2020, 6:18 a.m.
Konstantin Grudnitskiy

>>> text = 'hello world'>>> ' '.join(word for word in text.split()[:-1])'hello'>>> def remove_last_word(text):... return text and ' '.join(word for word in text.s…
March 27, 2020, 2:40 p.m.
Evgenij Legotskoj

Добрый день. В конце пятой статьи скачать можете.
March 27, 2020, 2:28 p.m.
mkdir _

Здравствуйте, а можно, пожалуйста, ссылку на целые исходники, если есть?
March 27, 2020, 4:36 a.m.
Evgenij Legotskoj

Скорее всего также, как и для установки всех остальных переменых в CMake, через использование set
Now discuss on the forum
s
April 6, 2020, 8:06 a.m.
shuric

Добрый день. Объясните пожалуйста ... ... допиливать стилевое оформление в прокси классе ... где именно копать ? В каком виртуальном методе лучше допиливать (если можно н…
April 6, 2020, 4:19 a.m.
Evgenij Legotskoj

Попробуй не переустанавливать материал, а просто менять цвет
April 5, 2020, 11:38 a.m.
Mihailll

Так работает windeployqt --qmldir E:\QTProject\testQmlAndCpp E:\test\build-testQmlAndCpp-Desktop_Qt_5_14_1_MinGW_32_bit-Release
April 5, 2020, 2:35 a.m.
Mihailll

Так работает console.log(textEmail.text) var str = textEmail.text; var n = str.search(/^((([0-9A-Za-z]{1}[-0-9A-z\.]{1,}[0-9A-Za-z]{1})|([0-9А-Яа-я]{1}[-0-9А-я\.]{1,}[…
April 3, 2020, 8:48 a.m.
Intruder

Евгений, добрый день. Спасибо!
EVILEG
About
Services
© EVILEG 2015-2019
Recommend hosting TIMEWEB