Лаб 5_RubyOnRails (1075652), страница 4

Файл №1075652 Лаб 5_RubyOnRails (Лабораторный практикум) 4 страницаЛаб 5_RubyOnRails (1075652) страница 42017-12-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

Default is UTC.# config.time_zone = 'Central Time (US & Canada)'# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]# config.i18n.default_locale = :de# Configure the default encoding used in templates for Ruby 1.9.config.encoding = "utf-8"# Configure sensitive parameters which will be filtered from the log file.config.filter_parameters += [:password]# Enable escaping HTML in JSON.config.active_support.escape_html_entities_in_json = true####Use SQL instead of Active Record's schema dumper when creating the database.This is necessary if your schema can't be completely dumped by the schema dumper,like if you have constraints or database-specific column typesconfig.active_record.schema_format = :sql# Enforce whitelist mode for mass assignment.# This will create an empty whitelist of attributes available for mass-assignment for all models# in your app.

As such, your models will need to explicitly whitelist or blacklist accessible# parameters by using an attr_accessible or attr_protected declaration.config.active_record.whitelist_attributes = true# Enable the asset pipelineconfig.assets.enabled = true# Version of your assets, change this if you want to expire all your assetsconfig.assets.version = '1.0'endendКак видим, большая часть параметров удовлетворяет значениями поумолчанию.

В будущем может понадобиться изменение языка по-умолчаниюconfig.i18n.default_locale.config/environments/development.rbconfig/environments/production.rb22config/environments/test.rbconfig/localesconfig/database.ymlconfig/initializers/secret_token.rbconfig/initializers/session_store.rb23Формы. Передача данных.Пример приложения с формойРазработаем приложение-калькулятор, задачей которого будет принятьвведенные значения и выдать результат.1. ввести rails new calc и войти в созданную директорию calc2. ввести rails generate controller Calc input view3. открыть файл app/views/input.html.erb<h1>Calc#input</h1><p>Find me in app/views/calc/input.html.erb</p><%= form_tag("/calc/view", :method => "get") do %><%= label_tag("Value 1:") %><%= text_field_tag(:v1) %> <br/><%= label_tag("Value 2") %><%= text_field_tag(:v2) %> <br/><%= label_tag("+") %><%= radio_button_tag(:op,<%= label_tag("-") %><%= radio_button_tag(:op,<%= label_tag("*") %><%= radio_button_tag(:op,<%= label_tag("/") %><%= radio_button_tag(:op,<br/>"+") %><br/>"-") %><br/>"*") %><br/>"/") %><br/><%= submit_tag("Calc result") %><% end %>4.

открыть файл app/views/view.html.erb<h1>Calc#view</h1><p>Find me in app/views/calc/view.html.erb</p><p id="result"><%= @result %></p><%= link_to "Repeat calculation", :calc_input %>5. Открыть файл app/controllers/calc_controller.rbclass CalcController < ApplicationControllerdef inputenddef viewv1 = params[:v1].to_iv2 = params[:v2].to_i@result = case params[:op]when "+" then v1 + v2;when "-" then v1 - v2;when "*" then v1 * v2;when "/" then v1 / v2;else "Unknown!"endendend24Проверяем результат.rails server –e developmentРисунок 8 Страница http://localhost:3000/calc/inputРисунок 9 Страница http://localhost:3000/calc/view после нажатия “Calc result”Пояснения к примеруВ приведенном примере для написания представленияapp/views/calc/input.html.erb использовано средство eRuby (Embedded Ruby).Это средство обеспечивает возможность написания шаблонов, в которыхделаются вставки кода на языке Ruby и, который будет выполнен в процессеподстановки шаблона.Шаблон представляет собой текст, имеющий вставки специального формата.Различают вставки для кода:<% ruby code %>% ruby codeИ вставки для выражений.<%= ruby expression %>25Код, расположенный внутри вставки, будет выполнен в процессе обработкишаблона.

Причём любые операции консольного вывода приведут к тому, чтовыводимые данные будут вставлены в результирующий текст. Напримервставка <% print "hello" %> будет заменена строкой hello.Выражение необходимо в том случае, когда требуется получить результат.Например вставку выше можно заменить на вставку <%= "hello" %>. Вставкадля выражений применяется для того, чтобы исключить необходимостьиспользования методов print, puts и пр.Ruby-код не прерывается между вставками.

Это позволяет организовать егоследующим образом (фрагмент примера выше):<%= form_tag("/calc/view", :method => "get") do %><%= label_tag("Value 1:") %><%= text_field_tag(:v1) %> <br/><br/><%= submit_tag("Calc result") %><% end %>В данном случае вызывается метод form_tag, в блоке которого вызываютсяметоды label_tag, text_field_tag, submit_tag. Между вставками, содержащимиRuby-код может содержаться любой текст, который будет вставлен в итоговыйтекст.

Однако текст, который формируют методы form_tag, label_tag,text_field_tag, submit_tag, будет размещен точно в позиции содержащих ихвставок. Отметим, что эти методы реализует Ruby on Rails. Более подробно см.http://guides.rubyonrails.org/form_helpers.html иhttp://guides.rubyonrails.org/layouts_and_rendering.htmlhttp://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.htmlОграничимся описанием использованных выше методов.Метод для прописывания тэга формы. Обратите внимание на то, что методподдерживает блоки.

Последний параметр &block является альтернативнымдля Ruby способом передачи блока.form_tag(url_for_options = {}, options = {}, &block)Одна из возможных опций (options)::method — устанавливает метод отправки формы "get" или "post".Примеры:form_tag('/posts')# => <form action="/posts" method="post">form_tag('/posts/1', method: :put)# => <form action="/posts/1" method="post"> ...

<input name="_method"type="hidden" value="put" /> ...26form_tag('/upload', multipart: true)# => <form action="/upload" method="post" enctype="multipart/form-data"><%= form_tag('/posts') do -%><div><%= submit_tag 'Save' %></div><% end -%># => <form action="/posts" method="post"><div><input type="submit" name="commit"value="Save" /></div></form>Метод формирования HTML-метки и прописывание имени в качествеатрибута:label_tag(name = nil, content_or_options = nil, options = nil, &block)Примеры:label_tag 'name'# => <label for="name">Name</label>label_tag 'name', 'Your name'# => <label for="name">Your name</label>label_tag 'name', nil, class: 'small_label'# => <label for="name" class="small_label">Name</label>Метод формирования текстового поля.text_field_tag(name, value = nil, options = {})Допустимые значения Options: :disabled — Если установлено в true, то пользователь не сможетиспользовать это поле. :size — Видимый размер поля в символах. :maxlength — Максимальное количество символов, которое может ввестипользователь. :placeholder — Текст, которые печатается по умолчанию в поле до техпор, пока пользователь не начнёт ввод.Примеры:text_field_tag 'name'# => <input id="name" name="name" type="text" />text_field_tag 'query', 'Enter your search query here'# => <input id="query" name="query" type="text" value="Enter your search queryhere" />text_field_tag 'search', nil, placeholder: 'Enter search term...'# => <input id="search" name="search" placeholder="Enter search term..."type="text" />text_field_tag 'request', nil, class: 'special_input'# => <input class="special_input" id="request" name="request" type="text" />text_field_tag 'address', '', size: 75# => <input id="address" name="address" size="75" type="text" value="" />text_field_tag 'zip', nil, maxlength: 527# => <input id="zip" maxlength="5" name="zip" type="text" />text_field_tag 'payment_amount', '$0.00', disabled: true# => <input disabled="disabled" id="payment_amount" name="payment_amount"type="text" value="$0.00" />text_field_tag 'ip', '0.0.0.0', maxlength: 15, size: 20, class: "ip-input"# => <input class="ip-input" id="ip" maxlength="15" name="ip" size="20"type="text" value="0.0.0.0" />Метод для создания селектора в форме круга.

Для предоставлениявозможности выбора одного значения из группы следует сформироватьнесколько селекторов с одним и тем же именем.radio_button_tag(name, value, checked = false, options = {})Допустимые значения «Options»: :disabled — Если установлено в true, то пользователь не сможетиспользовать это поле.Примеры:radio_button_tag 'gender', 'male'# => <input id="gender_male" name="gender" type="radio" value="male" />radio_button_tag 'receive_updates', 'no', true# => <input checked="checked" id="receive_updates_no" name="receive_updates"type="radio" value="no" />radio_button_tag 'time_slot', "3:00 p.m.", false, disabled: true# => <input disabled="disabled" id="time_slot_300_pm" name="time_slot"type="radio" value="3:00 p.m." />radio_button_tag 'color', "green", true, class: "color_input"# => <input checked="checked" class="color_input" id="color_green" name="color"type="radio" value="green" />Метод для формирования кнопки.submit_tag(value = "Save changes", options = {})Допустимые значения «Options»: :data – используется для добавления пользовательских данных. :disabled - Если установлено в true, то пользователь не сможетиспользовать это поле. Любые другие ключи будут интерпретироваться как стандартные HTMLопции и также будут добавлены в итоговый вывод.Примеры:submit_tag# => <input name="commit" type="submit" value="Save changes" />submit_tag "Edit this article"# => <input name="commit" type="submit" value="Edit this article" />submit_tag "Complete sale", data: { disable_with: "Please wait..." }# => <input name="commit" data-disable-with="Please wait..." type="submit"value="Complete sale" />28submit_tag nil, class: "form_submit"# => <input class="form_submit" name="commit" type="submit" />submit_tag "Edit", class: "edit_button"# => <input class="edit_button" name="commit" type="submit" value="Edit" />29Функциональные тесты контроллеровФункциональные тесты предназначены для проверки функционированияконкретных действий контроллера и позволяют проверить: является ли успешным или не успешным обращение к заданномудействию контроллера;было ли выполнено перенаправление пользователя на заданную страницув процессе выполнения действия; имеется ли необходимый объект для использования в представлении; было ли сформировано необходимое сообщение для пользователя.Для разработанного приложения-калькулятора целесообразно проверить: действие Calc#input возвращает success; действие Calc#view при наличии всех необходимых параметров создаёт@result; действие Calc#view при отсутствии необходимых параметров не создаёт@result.Файл для функционального теста уже сформирован при генерацииконтроллера.

Характеристики

Тип файла
PDF-файл
Размер
608,67 Kb
Тип материала
Высшее учебное заведение

Список файлов лабораторной работы

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6625
Авторов
на СтудИзбе
294
Средний доход
с одного платного файла
Обучение Подробнее