处理前端用户输入的建议

时间:2014-07-31 14:43:07

标签: ruby-on-rails ruby simple-form

我一直在使用Ruby& RoR已经持续了几个星期,并且必须说,这是一种美妙的语言,与之合作非常愉快。

我希望有人可以指出我正确的方向,找到一篇解释在前端收集用户输入的文章,到目前为止我发现的一切都令人困惑。

基本上,我想在前端视图中创建一个输入字段,将结果传递给我的控制器,以便将其提供给API包装器。

在irb我可以做到这一点,但我不理解前端可以访问的视图的等价物。

customeremail = gets.chomp
ticketfind = Desk.customers(:email => customeremail)

我不一定需要将数据存储在数据库中,我几乎不愿意这样做。基本上只需要输入传递给API,因此我可以重定向到我将提交给API的表单。我确定我可以通过一些很好的链接弄明白,我只是不认为我正在搜索正确的东西。

感谢阅读!

2 个答案:

答案 0 :(得分:2)

你想要的是一个简单的表格......

<%= form_tag "/my_controller/my_action" do %>
  <%= text_field_tag ":customer_email" %>
  <%= submit_tag "Save" %>
<% end %>

此网站介绍了form_tag http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html

并使用my_controller my_action方法...

def my_action
ticketfind = Desk.customers(:email => params[:customer_email])

与Josh不同,我更喜欢使用表单助手,但总有不止一种方法。

答案 1 :(得分:1)

当表单以HTML格式提交时,它们会根据您指向表单的URL向服务器创建POST请求。服务器接收POST请求并通过路由映射将其映射到控制器。

例如:

<!-- This will POST form data to localhost:3000/users/create --> 
<form action='users/create'>
    <input type='text'/>
    <input type='submit'/>
</form>

这应该ping您的服务器并路由到UsersController#create。 Rails在params

中隐藏表单数据

http://www.w3schools.com/tags/att_form_action.asp

我建议你先学会而不用 ERB。使用原始HTML创建表单,以便您可以开始了解正在发生的事情。您可以使用ERB模板,但只在Ruby中嵌入变量(例如,不要使用表单助手)。然后你可以重构(我个人更喜欢原始HTML而不是ERB heleprs)。如果您使用Chrome或FF,则可以打开开发人员控制台并观察提交表单时网络请求的工作方式(我忘记了每次刷新时是否清除,因此您实际上可能无法在此处执行此操作例如,但它在AJAX流程中很有用)