我可以从 Rails 4 中的按钮提交传递参数吗?

Can I pass params from button submit in Rails 4?

本文关键字:参数 提交 按钮 Rails 我可以      更新时间:2023-09-26

我正在尝试做一些简单的事情:在我的Rails视图中,我有一个文本输入,我想捕获并附加到参数中。我发现了一个类似的问题,但我想知道我是否可以在不更新控制器的情况下内联完成。

首先,在视图中,我有一个表单输入和一个 Rails 链接。这些现在独立工作进行测试,但我可以在单击按钮时将用户名作为参数传递:

<form>
    <input type="text" name="name">
 </form>    
    <%= button_to 'Call Action', points_path(username: @current_user.last.username), method: :post %>

我想删除@current_user.last.username,而是将用户在输入中键入的内容作为参数传递。

有没有办法在控制器中没有子操作的情况下做到这一点,如上所述(通过帮助程序或将Javascript与我的Rails链接一起使用)?

您正在尝试提交表单,让我们以 Rails 的方式进行,

<%= form_for :points, points_path do |f|  %>
  <%= f.text_field :name %>
  <%= f.submit %>
<% end %>

在操作中,您可以通过以下方式访问name参数params[:points][:name]

希望对您有所帮助!

  1. 将 javascript 单击事件附加到阻止默认行为的按钮。
    • 在单击事件中,获取输入元素的值并将其追加到 url var go_to = "/path/to/action?param_name=" + input_value
  2. 然后重定向到该网址。

看起来您正在使用 post 方法,因此您可以像表单提交一样查看 JavaScript post 请求,其中包含有关如何在不使用 ajax 的情况下从 JavaScript 发布的说明 - 简而言之,您可以即时制作表单并提交。

编辑

@RSB做对了 - 这是轨道的方式。如果您坚持使用按钮和独立输入而不是表单,则可以按照我描述的方式进行操作...但我认为你最好听从@RSB的建议。