【问题标题】:Rails form with URL constructed dynamically using one of its fields使用其中一个字段动态构造 URL 的 Rails 表单
【发布时间】:2016-05-24 18:22:43
【问题描述】:

我正在构建一个具有文本输入和提交按钮的搜索表单(doh!)。我的routes.rb 文件包含:

get ':dependency', to: 'pages#dependency'

这意味着我在/ 之后放置的任何内容都将路由到PagesController#dependency,并将params[:dependency] 设置为URL 中设置的任何字符串。

我想构建一个表单,在提交时将转到/<value-from-text-input>,动态使用文本输入中提供的值。我怎样才能做到这一点?如果我不必使用 JavaScript,那就太好了。

【问题讨论】:

  • 这是个坏主意——除非最后声明,否则您的路线会吞并其他任何获取路线。另外这个的实际用例是什么?这听起来毫无用处 - 如果您知道资源的路径,而不仅仅是在地址栏中添加它。但你的用户无论如何都不会。
  • 如果您想要在博客/网站中创建一个真正的搜索功能,例如 Rails 应用程序,它本身就是一个完整的教程甚至一本书。然而,这种幼稚的实现并不是真正可行的。对不起。
  • 我并不是说这会投入生产。我只是在测试不同的方法,我很好奇这是否可能。

标签: javascript ruby-on-rails forms


【解决方案1】:

是的,这是一个简单的表单操作。

<form action="/" method="get">
  <input type="text" name="dependency"/>
</form>

因为 Rails 配置在根 '/' 上,这将在 get 操作中提交表单,将值作为查询字符串附加到末尾,然后 rails 将其转换为更清晰的路由。

【讨论】:

  • 它使用参数创建到 /?dependency=&lt;value-from-text-input&gt; 根的路由,但 OP 希望使用 url 中的参数进行路由,例如 /&lt;value-from-text-input&gt;
  • 让你的路线得到'/:dependency',到:'pages#dependency',以斜线开头。
  • 我如何将动态字段值链接到表单 URL?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-14
  • 1970-01-01
相关资源
最近更新 更多