Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 实现“取消”按钮的最佳方式是什么?该按钮向控制器发送订单id,并将订单状态属性更新为“取消”;取消了;?_Javascript_Ruby_Ruby On Rails 4 - Fatal编程技术网

Javascript 实现“取消”按钮的最佳方式是什么?该按钮向控制器发送订单id,并将订单状态属性更新为“取消”;取消了;?

Javascript 实现“取消”按钮的最佳方式是什么?该按钮向控制器发送订单id,并将订单状态属性更新为“取消”;取消了;?,javascript,ruby,ruby-on-rails-4,Javascript,Ruby,Ruby On Rails 4,在订单显示页面上实现取消按钮的最佳方式是什么。取消按钮只是在控制器中将订单的状态属性更新为“已取消”。我想将order.id传递给控制器,因为每个用户都有许多订单。我目前正在为nil:Nilclass获取一个未定义的方法“id”,这使我认为@order.id没有被传递到隐藏字段中。不确定我在做什么是将order.id传递给控制器的最佳方式&欢迎提供更好的解决方案 <div> <% @orders.each do |order| %> <%

在订单显示页面上实现取消按钮的最佳方式是什么。取消按钮只是在控制器中将订单的状态属性更新为“已取消”。我想将order.id传递给控制器,因为每个用户都有许多订单。我目前正在为nil:Nilclass获取一个未定义的方法“id”,这使我认为@order.id没有被传递到隐藏字段中。不确定我在做什么是将order.id传递给控制器的最佳方式&欢迎提供更好的解决方案

<div>


    <% @orders.each do |order| %>
        <%= order.id %>
        <%= order.total %>
        <%= order.user.name %>

        //lots of boring stuff then at the bottom of the page

        <%= form_tag guest_cancel_path, method: :post do |f| %> 
        <input type="hidden" name="order_id" value="<% order.id %>" >  
        <%= submit_tag "Cancel ",class: "cancel-button btn wide" %> 
        <% end %> 
然后在我的路线中:

post 'guest_cancel' => 'orders#guest_cancel' 

您似乎没有将其输出到
“”


您还需要将此添加到控制器中:
@order.update(状态:“cancalled”)
您似乎没有将其输出到控制器中


您还需要将此添加到控制器中:
@order.update(状态:“cancalled”)

如果侦听和订单之间存在关系,则应编写


所以,顺序而不是顺序。

如果你在倾听和顺序之间有关系,那么你应该写



因此,是orders而不是order。

我忘了在这里输入它,谢谢,但是我得到了nil:nilClass的一个未定义的方法“id”,即使在输出order之后也是如此。id刚刚更新了答案。。我想应该直接订购。。(内环)。。它在工作吗?不,它没有工作,我认为问题是id没有被传递到输入字段,因为order.id充当一个局部变量,不能在表单内部访问。谢谢你的努力,好的。在进入form_标记块之前,在每次迭代中分配它怎么样。然后改用
@current\u order\u id
。正如他最初所说,您需要一个等号:
如果没有等号,Erb会计算订单id,但不会将其包含在HTML输出中。我忘了在这里键入,谢谢,但是我得到了nil:nilClass的一个未定义的方法'id',即使在输出订单之后也是如此。idJust更新了答案。。我想应该直接订购。。(内环)。。它在工作吗?不,它没有工作,我认为问题是id没有被传递到输入字段,因为order.id充当一个局部变量,不能在表单内部访问。谢谢你的努力,好的。在进入form_标记块之前,在每次迭代中分配它怎么样。然后改用
@current\u order\u id
。正如他最初所说,您需要一个等号:
如果没有等号,Erb会计算订单id,但不会将其包含在HTML输出中当您点击控制台中的提交按钮时,控制台中的
参数是什么,当你点击“提交”按钮时,你的脚会被扣住。这是一个输入错误,但我更改了代码并更新了问题,从循环浏览每个用户的列表并打印每个列表中的所有订单,到只检查用户是来宾的所有订单,但又回到了无法将order.id传递到隐藏字段attributeYou’s welcome的相同问题,我不确定到底发生了什么,你能在你的控制器中使用类似pry或debugger的东西来检查params散列中的内容吗?可能是您必须像下面这样访问order\u id参数[:order][:order\u id]我检查过哈希值为空。我认为问题不在控制器上。我认为订单不能传递到表单中,因为它不是一个可以在表单内部访问的全局变量。我可能需要弄清楚,将order.id设置为一个全局变量,然后像Abdullah建议的那样在表单中使用它,或者完全删除表单,然后尝试执行ajax post操作,以json或其他方式将id发送到控制器,这将太复杂,仅向控制器发送一个简单的id我建议您首先执行尝试使用form_代替form_标记,并使用hidden_字段代替常规输入,type=“hidden”。谢谢你的帮助。这是一个输入错误,但我更改了代码并更新了问题,从循环浏览每个用户的列表并打印每个列表中的所有订单,到只检查用户是来宾的所有订单,但又回到了无法将order.id传递到隐藏字段attributeYou’s welcome的相同问题,我不确定到底发生了什么,你能在你的控制器中使用类似pry或debugger的东西来检查params散列中的内容吗?可能是您必须像下面这样访问order\u id参数[:order][:order\u id]我检查过哈希值为空。我认为问题不在控制器上。我认为订单不能传递到表单中,因为它不是一个可以在表单内部访问的全局变量。我可能需要弄清楚,将order.id设置为一个全局变量,然后像Abdullah建议的那样在表单中使用它,或者完全删除表单,然后尝试执行ajax post操作,以json或其他方式将id发送到控制器,这将太复杂,仅向控制器发送一个简单的id我建议您首先执行尝试使用form_代替form_标记,并使用hidden_字段代替常规输入,type=“hidden”。
post 'guest_cancel' => 'orders#guest_cancel'