我需要保存从用户那里获得的输入,但是我发现了一个以旧的格式工作的代码,
文件:public \ input.html,添加以下代码:
<html>
<head>
<title>Using Text Fields</title>
</head>
<body>
<h1>Working With Text Fields</h1>
This Ruby on Rails application lets you read data from text fields.
<br>
<form action = "/hello/there" >
Please enter your name.
<br>
<input type="text" name="text1">
<br>
<br>
<input type="submit"/>
</form>
</body>
</html>
文件:app \ controllers \ hello_controller.rb:
class HelloController < ApplicationController
def there
@data = params[:text1]
end
end
文件:app \ views \ hello \ there.rhtml:
<html>
<head>
<title>Reading data from text fields</title>
</head>
<body>
<h1>Reading data from text fields</h1>
This Ruby on Rails application reads data from text fields.
<br>
<br>
Your name is <%= @data %>.
<br>
<br>
</body>
</html>
Start the WEBrick server: ruby script/server
Navigate to http://localhost:3000/input.html
这是代码片段,说实话它就像魅力一样,但在当前的rails api中它给了我这样的东西:
<!--
<form action = "home/omg" >
<%= label_tag(:text1, "Enter the message:") %>
<%= text_field_tag :text1 %>
<%= submit_tag"submit" %>
-->
那么差异是什么,我如何使用给定的输入,
我想要和需要的是当用户点击按钮 - 提交按钮 - 获取文本字段中的文本并将其用作我的家庭控制器中的字符串。我怎么能做到这一点?
答案 0 :(得分:0)
唯一的区别是您在Rails指南中找到的代码使用Rails form helpers。表单助手将在服务器上进行评估,结果将发送到客户端,几乎与第一个示例中的结果完全相同。尝试使用表单助手,然后在浏览器中导航到您的应用程序。右键单击&#34; Inspect Element&#34;并且您将看到标准标记,类似于您所写的内容。
至于使用给定的输入,目前是不行的?我还没有测试过你的代码,但它看起来应该可行。如果字符串未显示在there.rhtml
中,可以解释发生了什么吗?
答案 1 :(得分:0)
与建议的answer一样,查看Rails指南,了解Rails form helper form_tag
的工作原理。
在app/views/hello/edit.erb.html
或您拥有表单的地方(赢得public/*.html
工作,因为这些是静态资源)。使用ERB(输出HTML的嵌入式RuBy文件)中的form_tag
,如:
<%= form_tag("/hello/there") do %>
<%= label_tag(:text1, "Please enter your name") %>
<%= text_field_tag :text1 %>
<%= submit_tag %>
<% end %>
将输出HTML:
<form action="/hello/there">
<label for="text1">Please enter your name</label>
<input type="text" name="text1" id="text1" />
<input type="submit" />
</form>