【问题标题】:how to save input from text field with form in ruby on rails如何在 ruby​​ on rails 中保存带有表单的文本字段的输入
【发布时间】:2014-08-12 19:39:49
【问题描述】:

我需要保存从用户那里获取的输入,但我发现了一个以错误和旧格式工作的代码,

文件: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

那是代码 sn-p,老实说,它就像一个魅力,但在当前的 rails api 中它给了我这样的东西:

<!--
<form action = "home/omg" >

  <%= label_tag(:text1, "Enter the message:") %>
  <%= text_field_tag :text1 %>
  <%= submit_tag"submit" %>
-->

那么有什么区别以及如何使用给定的输入,

我想要并且需要的是当用户单击按钮时 - 提交按钮 - 获取文本字段中的文本并将其用作我的家庭控制器中的字符串。我怎样才能做到这一点?

【问题讨论】:

    标签: jquery ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4


    【解决方案1】:

    唯一的区别是您在 Rails 指南中找到的代码使用了Rails form helpers。表单助手将在服务器上进行评估,结果将发送到客户端,几乎与第一个示例中的结果完全相同。尝试使用表单助手,然后在浏览器中导航到您的应用程序。右键单击“检查元素”,您将看到标准标记,类似于您编写的内容。

    至于使用给定的输入,目前有什么不工作吗?我没有测试你的代码,但它看起来应该可以工作。如果字符串没有出现在there.rhtml 中,可以解释发生了什么吗?

    【讨论】:

      【解决方案2】:

      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>
      

      【讨论】:

      • 我注意到该示例使用 .rhtml 而不是 ERB .erb.html,它类似但已过时,并且在 Rails 3+ 中无法使用,我很确定。
      猜你喜欢
      • 2013-05-01
      • 2014-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      • 2015-07-26
      • 1970-01-01
      相关资源
      最近更新 更多