我正在尝试构建一个页面以加载订单ID,但该页面又退回Couldn't find Order
,您能帮忙吗?
routes.rb get '/orders/cancellation', to: 'orders#cancel'
<h1>Preview & Cancel your order here</h1>
<div class="block">
<h1> Order <%= @order.name %></h1>
<div id="multiple-file-preview">
<ul id="sortable">
<div class="clear-both"></div>
</ul>
</div>
</div>
def cancel
paginate_versions PaperTrail::Version.where(order_id: order.id).order(created_at: :desc)
remote_versions_pagination
end
def order
@order ||= Order.find_by!(shopify_id: params[:id])
end
答案 0 :(得分:0)
这可能是由于cancellation
被用作订单ID。您可以在表演动作中使用调试器对其进行验证。
如果是这种情况,那么您需要以以下方式修改路由文件:订单/取消位于orders /:id之前,即,显示操作作为rails将尝试以上下方式匹配该路线,并且该请求将被分派到第一个匹配的路由。
答案 1 :(得分:-1)
您应该在该特定控制器操作中定义实例变量。 它将解决这个问题
def cancel
@order ||= Order.find_by!(shopify_id: params[:id]) # Whatever you need to assign.. just make sure we have @order here pints to some order record
paginate_versions PaperTrail::Version.where(order_id:order.id).order(created_at: :desc)
remote_versions_pagination
end