Создайте связанное с базой данных поле формы в ruby ​​on rails - PullRequest
1 голос
/ 17 января 2012

Я пытаюсь сделать некоторые расчеты на простом рубиновом экране.Допустим, я хочу создать форму, которая позволяет пользователю переводить метры в футы.Конечно, я не хочу хранить значения в базе данных.Также я не хотел бы создавать таблицу только для этого.

Итак, мой вопрос .. Как мне создать одно текстовое поле, привязанное к контроллеру.С кнопкой.

Ответы [ 2 ]

3 голосов
/ 17 января 2012

Вот очень простой пример создания формы с добавлением двух чисел:

rails new math_app -O
cd math_app
rails generate controller Add form result

В последней строке создается контроллер с двумя действиями -

  • «форма» - для отображенияформа
  • «результат» - для отображения результатов

В другом окне командной строки откройте каталог 'math_app' и запустите сервер:

rails server

Вы можете открыть браузер для «localhost: 3000 / add / form» и «localhost: 3000 / add / result», чтобы увидеть страницы по умолчанию, созданные Rails для вас.Когда вы редактируете вещи ниже, вы можете вернуться на эти страницы (и даже не перезагружать сервер), чтобы посмотреть, что они производят.

Отредактируйте 'app \ views \ add \ form.html.erb', чтобы создатьформу, которую мы хотим показать.

<%= form_tag add_result_path do %>
  <%= number_field_tag :first %>
  +
  <%= number_field_tag :second %>
  <%= submit_tag "add" %>
<% end %>

Отредактируйте 'config / rout.rb', чтобы заставить действие 'result' принимать запросы POST из формы выше.

Change -

get "add/result"

to-

post "add/result"

Редактировать метод результата 'app \ controllers \ add_controller.rb', чтобы получить два числа из данных формы и сложить их вместе.

def result
  @first = params[:first].to_i
  @second = params[:second].to_i
  @result = @first + @second
end

Отредактируйте 'app \ views \ add \ result.html.erb', чтобы показать результат.

<%= @first %> + <%= @second %> = <%= @result %>
<br/>
<%= link_to 'back', add_form_path %>

Готово!

0 голосов
/ 17 января 2012

проверить form_tag http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-form_tag

Ruby on rails часто использует идеологию MVC;однако вам не нужно сохранять все в базе данных. form_tag позволяет создавать HTML-форму, не привязывая ее к модели.

...