我正在尝试做一些简单的事情:在我的Rails视图中,我有一个文本输入,我想要捕获并附加到params。我found a similar question,但我想知道我是否可以在不更新控制器的情况下进行内联。
首先,在视图中,我有一个表单输入和一个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
,而是将用户在输入中键入的内容作为参数传递。
有没有办法在没有子动作的情况下执行此操作,如上所述,在控制器中(通过帮助程序或使用带有我的Rails链接的Javascript)?
答案 0 :(得分:3)
您正在尝试提交表单,让我们以Rails的方式进行,
<%= form_for :points, points_path do |f| %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
在操作中,您可以name
params[:points][:name]
参数
希望有所帮助!
答案 1 :(得分:1)
var go_to = "/path/to/action?param_name=" + input_value
。 您似乎正在使用post方法,因此您可以查看JavaScript post request like a form submit,其中包含如何在不使用ajax的情况下从JavaScript发布的说明 - 简而言之,您可以动态制作表单并提交它。
@ RSB正确地做到了 - 这是实现目标的方式。如果您坚持使用按钮和独立输入而不是表单,您可以按照我描述的方式进行操作......但我认为您最好不要遵循@ RSB的建议。