我正在尝试在一个简单的红宝石屏幕上进行一些计算。让我们说为了好玩,我想创建一个表格,让用户将米转换为英尺。当然,我不想将值存储在数据库中。我也不想为此创建一个表。
所以我的问题..如何创建与控制器绑定的单个文本字段。用一个按钮。
我正在尝试在一个简单的红宝石屏幕上进行一些计算。让我们说为了好玩,我想创建一个表格,让用户将米转换为英尺。当然,我不想将值存储在数据库中。我也不想为此创建一个表。
所以我的问题..如何创建与控制器绑定的单个文本字段。用一个按钮。
这是一个非常简单的例子,它制作了一个将两个数字相加的表格:
rails new math_app -O
cd math_app
rails generate controller Add form result
最后一行生成一个具有 2 个动作的控制器 -
在另一个命令提示符窗口中,打开“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/routes.rb' 以使 'result' 操作接受来自上述表单的 POST 请求。
改变 -
get "add/result"
至-
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 %>
完毕!
查看 form_tag http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-form_tag
Ruby on rails 大量使用 MVC 思想;但是,您不需要将所有内容保存到数据库 form_tag 允许您创建 HTML 表单而无需将其绑定到模型。