Rails - 隐藏输入字段用法/使用ajax传递params

时间:2017-06-14 11:21:26

标签: javascript jquery ruby-on-rails ajax coffeescript

我遇到需要进行ajax调用并将数据发布到控制器的情况。由于它是自定义提交,因此控制器中无法访问正常的参数。因此,当我想保存数据时,我没有我想要的ID。

我的网址就像这样localhost/events/2/roster/1

我的控制器中需要2和1,所以我可以操作这些记录。我考虑使用

在页面上执行类似隐藏输入字段的操作
<%= @event.id %>
<%= @roster.id %>

然后将价值提取到coffeescript中,但这让我感到畏缩。

有没有更好的方法来访问控制器中的这些数据?

你能通过ajax将正常参数传递给控制器​​吗?

感谢您的投入。

修改 通常,当您执行表单提交时,如form_for,您将获得包含对象ID的params,其中包含您的数据。当我执行我的ajax POST时,我无法使用id字段。

通过自定义提交,我的意思是它的AJAX帖子与表单提交。

编辑2 路线:

resources :events do
  resources :rosters
end

post 'rosters/validate'

谢谢,

1 个答案:

答案 0 :(得分:1)

鉴于您的路由/控制器没有ID信息,是的,您需要通过POST请求传递ID。

具有所需ID的隐藏输入字段是一种方法,另一种可能是嵌入<script>标记,您可以将值直接注入JavaScript。即

之类的东西
<script>
  window.event_id = <%= @event.id %>;
  window.roster_id = <%= @roster.id %>;
</script>

然后将它们添加到POST有效负载中。如果您已经拥有通过AJAX提交的表单,则使用隐藏的输入字段是有意义的。